[Algorithm] 정렬 알고리즘(sorting algorithm)의 시간복잡도(time complexity)
·
Computer Science and Engineering/Algorithm
Sorting Algorithm 정렬 알고리즘은 elements의 list를 받아 재배열하는 것으로 다양하게 응용 가능하여 많은 알고리즘의 핵심 하위 루틴(core subroutine)으로 사용된다. 이러한 정렬 알고리즘은 크게 세 가지 측면에서 평가된다. 하나는 시간복잡도(time complexity), 또 하나는 공간복잡도(space complexity), 마지막 하나는 안정성(stability)이다.시간복잡도는 말 그대로 시간에 대한 측면으로 연산이 얼마나 이뤄이지는가에 대한 것이다. 보통 최악의 경우, 최상의 경우, 평균적인 경우로 나눠 확인하며 빅오, 빅오메가, 빅세타 등 표기법을 사용한다.공간복잡도는 메모리 사용 측면인데, 이를 빅오, 빅오메가, 빅세타 등 표기법으로 나타내기도 하지만, 제자리..