알고리즘 패러다임Divide and Conquerpartition 함수 구현하기

Q

partition 함수를 간단하게구현해보았습니다.

조회 1,616

좋아요 2

2019년 6월 8일

댓글 3

2019년 6월 8일
공유해 주셔서 감사합니다 :) 위 코드의 장점은 간단하고. 이해하기가 쉽다고 느껴집니다. 단점이 있다면 `small_list, big_list`를 생성함으로서 공간복잡도가 O(n)이 될 것 같네요.
2019년 7월 6일
같은 기능을 구현한다는 것은 상당히 중요한 문제입니다. 내부적으로 구현하는 방법은 다를 수 있지만 출력하는 결과물은 같아야 한다는 의미입니다. 해설 코드와 위의 코드의 큰 차이점은 2가지 입니다. partition()함수의 리턴값은 정렬된 리스트가 아니라 pivot값의 인덱스 입니다. 그리고 인자로 전달된 리스트도 정렬이 되어야 합니다. 그런데 위의 코드는 인자로 전달된 리스트는 정렬이 안되어 있고, pivot값의 인덱스는 전달하지 않고 정렬된 리스트만 반환하고 있습니다. 이럴 경우 다음 단계에서 이 함수를 재사용할 수가 없습니다.
2019년 7월 6일
제가 이 부분을 놓쳤네요 - 개념적으로 리스트가 partition되는 것은 맞지만 염라불량감자님의 말씀대로 해설 코드와 결과물(?)이 다르기 때문에 `quicksort()`함수에 사용하기 어려울 것 같습니다.

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇