Algorithm/Inflearn
2023. 1. 16.
[Inflearn] 영리한 프로그래밍을 위한 알고리즘 - Comparison sort와 Non-comparison sort
Comparison sort VS Non-comparison sort 앞서 배웠던 버블정렬, 삽입정렬, 합병정렬, 퀵정렬, 힙정렬은 Comparision sort로 데이터들간의 크기만을 고려해서 정렬한다 하지만, 어떤 Comparison sort라도 최선의 경우 시간 복잡도가 O(n logn)보다 낮아질 수 없다. 왜냐하면 한 번의 sort를 돌 때 '최소' 트리의 높이만큼(log n) 탐색해야 하는데, 그 과정을 n번 반복하기 때문이다. 이러한 comparision sort의 한계점을 넘어서기 위해, 데이터들간의 크기 + 그 데이터들에 대한 사전지식 정보를 이용해 O(logn)의 시간복잡도(Sorting in Linear Time)를 갖는 정렬 알고리즘에 대해 알아보자. 1) Counting Sort ..