TDL
NOTE4
퀵 정렬 (Quick Sort)
처음에 전체 탐색을 할 때 좌우로 나눠 재귀적으로 수행하기 때문에 병합정렬보다 빠르다. (파티션나누기 -> 피벗 중심으로 양쪽 영역나누기 -> 나뉜 영역 중심으로 재귀호출을 진행하는 분할정복구조를 갖음)
퀵정렬의 시간복잡도가 병합정렬보다 크다.(둘다 nlogn정도)
퀵소트는 한정적인 범위에서 데이터를 정렬하기 때문에 캐시를 덜 활용하고, 하드웨어적으로 효율적임.
퀵소트도 분할정복을 통해 정렬하고, 피벗이라는 별도의 노드를 지정해두고 재귀적으로 수행을 함.
성능이 우수함에도 성능편차가 크고, 피벗(노드)설정 등 다루기 어려운 점이 존재하기 때문에 실물에서는 활용되기 어려움.
불안정 정렬의 대표적인 경우로서, 노드 값이 중복되는 경우에는 계속해서 swap(교환)을 시도함. (정렬을 진해하는 경우 중복값의 순서가 유지되지 않는 경우가 있다.)
최악의 경우에 첫번째 노드를 피벗으로 설정하고, 불균형하게 분할정복을 시도하여 성능이 안좋아짐.
병합정렬 (Merge Sort)
성능
메모이제이션(memoization)
memoizaiton : 컴퓨터 작업을 위한 소프트웨어 기술
memorization : 과학분야에서 범용적으로 쓰일 수 있는 기법 또는 전략.
특수 케이스(Edge Cases)