뭐라도 끄적이는 BLOG

Sort - QuickSort vs MergeSort 본문

기본이론/Algorithm

Sort - QuickSort vs MergeSort

Drawhale 2023. 6. 18. 14:30

먼저 QuickSort와 MergeSort중 어느것을 사용하는 것이 좋은가 에 대해서 명확한 해답은 내릴수 없다. 무조건 누가더 낫다라는 것보다 각각 어떤 상황에서 조금더 좋은 효율이 좋은지에 대해 생각해 봐야한다. Hybrid algorithm이 아닌 단순 Quick과 Merge만 비교해 본다.

 

배열에서 QuickSort와 MergeSort에서는 QuickSort가 좋다고 할 수 있다. 배열에서 MergeSort는 추가 공간을 사용하고 QuickSort는 Merge보다 적은 공간을 사용한다. 그리고 캐시 Locality(지역성)이 QuickSort가 더 좋다. QuickSort의 최악의 경우인 O(n^2)는 pivot의 설정으로 피할 수 있다.

 

MergeSort는 대용량 데이터에 적합하다. QuickSort와 HeapSort에 비해 안정적인 정렬이며 Linked List와 디스크 저장소 또는 네트워크 연결 스토리지와 같이 접근 속도가 느린 미디어의 매우큰 Lists에서 적합하다.

MergeSort에서 LinkedList의 경우 연결된 노드들은 메모리상에서 인접하지 않을 수 있어 배열보다 캐싱에대한 이점이 줄어든다. 그리고 배열과 달리 추가 공간을 필요로 하지 않는다.


※참고 자료

www.geeksforgeeks.org/quicksort-better-mergesort/

www.geeksforgeeks.org/why-quick-sort-preferred-for-arrays-and-merge-sort-for-linked-lists/

 

 

반응형

'기본이론 > Algorithm' 카테고리의 다른 글

Dijkstra Java Code  (0) 2023.07.23
Sort - MergeSort  (0) 2023.06.18
Sort - QuickSort  (0) 2023.06.18
Algorithm  (0) 2023.06.18