정렬(sorting)은 이름, 학번, 키 등 핵심 항목(key)의 대소 관계에 따라 데이터 집합을 일정한 순서로 줄지어 늘어서도록 바꾸는 작업을 말합니다. 이 알고리즘을 이용해 데이터를 정렬하면 검색을 더 쉽게 할 수 있습니다.

키 값이 작은 데이터를 앞쪽에 놓으면 오름차순(ascending order) 정렬, 반대의 경우 내림차순(descending order) 정렬이라고 부릅니다.

정렬 알고리즘의 핵심 요소는 교환, 선택, 삽입이며 대부분의 정렬 알고리즘은 이 세 가지 요소를 응용한 것입니다.

시간 복잡도 $O(n^2)$

버블 정렬 Buble Sort

단순 선택 정렬 - Straight Selection Sort

단순 삽입 정렬 - Straight Insertion Sort

시간 복잡도 O(n^1.25)

셸 정렬

시간 복잡도 $O(n*log(n))$, 최악: $O(n^2)$

퀵 정렬 Quick Sort