우리는 일단 두 가지 정렬 방법을 살펴봤습니다. 그런데 사실 이 외에도 퀵 정렬, 힙 정렬, 거품 정렬 등 여러 정렬 알고리즘이 있는데요.
그렇다면 이 많은 정렬 알고리즘 중 어떤 게 가장 좋을까요?
이 사이트를 들어가면 여러 정렬 알고리즘의 퍼포먼스를 다양한 상황에서 살펴볼 수 있습니다.
예를 들어 이미 거의 정렬된 리스트를 정렬할 때는 삽입 정렬(Insertion Sort)이 가장 빠른 반면, 무작위 순서의 리스트를 정렬할 때는 힙 정렬(Heapsort)이 가장 먼저 끝나네요. 아예 정반대로 정렬된 리스트의 경우에는 삽입 정렬이 매우 오래 걸린다는 것도 볼 수 있죠. 선택 정렬(Selection Sort)과 합병 정렬(Merge Sort)은 상황에 영향을 받지 않고 일정한 시간이 소요된다는 점도 주목해 볼 만합니다.
보시다시피 정렬 문제의 경우 "절대적인 좋은 답”이란 없습니다. 상황에 따른 각 알고리즘의 장단점을 파악해야 올바른 알고리즘을 선택할 수 있겠죠. 그렇기 때문에 문제를 해결하는 방법을 넘어서 알고리즘을 평가하는 능력을 길러야 합니다. 다음 챕터에서 배울 내용이 바로 “알고리즘 평가법”입니다.
출처 코드잇
'Algorithm > 알고리즘 패러다임' 카테고리의 다른 글
공간 복잡도 (0) | 2023.07.09 |
---|---|
주요 시간 복잡도 정리 (2) | 2023.07.09 |
알고리즘 평가 주의 사항 (0) | 2023.07.09 |
알고리즘이 바꾸는 세상 (0) | 2023.07.09 |
알고리즘이란? (0) | 2023.07.09 |