커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
퀵정렬 i = ps - 1 부분
[스킬업] 실무에 바로 쓰이는 알고리즘 by Python v0
4주차
북마크
명*
댓글
1
추천
0
조회수
9
조회수
9
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


퀵정렬 강의에서 prac에 i = ps - 1 이 부분 강의에서 설명해주시긴 했는데 잘 이해가 안되어서요 1빼는 이유 자세히 다시 설명해 주실 수 있을까요







작성한 코드 및 에러 메세지

def quicksort(lst, start, end):
    def partition(part, ps, pe): # 뉴 피벗 구하는 짓
        pivot = part[pe] #배열의 마지막을 피벗으로 설정
        i = ps - 1 #첫 비교때 피벗보다 작은 값이 나오면 i를 +1해줬을때 0이 나와야함
        for j in range(ps, pe): #피벗값과 배열요소를 반복비교하기 위한 반복문
            if part[j] <= pivot: #배열 요소가 피벗값보다 작다면
                i += 1 #피벗경계 범위를 한칸 늘려준다
                part[i], part[j] = part[j], part[i] # 값을 스위칭한다
        #위 반복이 끝나고 나면 i는 피벗보다 작은 집합의 범위이므로 i+1 자리에 피벗을 위치시킨다
        part[i + 1], part[pe] = part[pe], part[i + 1] #경계와 끝값(현피벗)을 스위칭한다
        return i + 1

    if start >= end:
        return None

    p = partition(lst, start, end)
    quicksort(lst, start, p - 1)
    quicksort(lst, p + 1, end)
    return lst




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴