※ 이 글은 chatGPT를 기반으로 작성한 글입니다.
① 퀵 정렬(quick sort)은 분할 정복 (devide and conquer)을 이용한 대중적인 정렬 알고리즘 중 하나이다.
② 퀵 정렬의 최악의 경우의 시간 복잡도는 O(n^2)이지만 평균적인 경우의 시간 복잡도는 O(n log(n))인 특이한 정렬 방법이다.
③ 퀵 정렬의 기본 원리는 다음과 같다.
㉠ 배열에서 피벗 요소를 고른다. 피벗 요소는 임의로 선택될 수 있다.
㉡ 배열을 두 개의 하위 배열 A, B로 나눈다. 하위 배열 A는 피벗 요소보다 작은 값을, 하위 배열 B는 피벗 요소보다 크거나 같은 값을 분류한다.
㉢ 하위 배열 A와 B에 ㉠, ㉡을 재귀적으로 적용한다.
④ 퀵 정렬의 의사 코드(psuedo code)는 다음과 같다.
⑤ 퀵 정렬의 소스 코드는 다음과 같다.
㉠
㉡
㉢
㉣
⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮
㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭
ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜ
'All about Data Structure & Algorithm > 기본' 카테고리의 다른 글
계수 정렬(Counting Sort) (0) | 2023.03.24 |
---|---|
힙 정렬(Heap Sort) (0) | 2023.03.24 |
병합 정렬(Merge Sort) (0) | 2023.03.23 |
선택 정렬(Selection Sort) (0) | 2023.03.21 |
이진 검색 알고리즘(Binary Search Algorithm) (0) | 2023.03.17 |