All about Data Structure & Algorithm/기본

퀵 정렬(Quick Sort)

※ 이 글은 chatGPT를 기반으로 작성한 글입니다.

① 퀵 정렬(quick sort)은 분할 정복 (devide and conquer)을 이용한 대중적인 정렬 알고리즘 중 하나이다.

② 퀵 정렬의 최악의 경우의 시간 복잡도는  O(n^2)이지만 평균적인 경우의 시간 복잡도는 O(n log(n))인 특이한 정렬 방법이다.

③ 퀵 정렬의 기본 원리는 다음과 같다.

  ㉠ 배열에서 피벗 요소를 고른다. 피벗 요소는 임의로 선택될 수 있다.

  ㉡ 배열을 두 개의 하위 배열 A, B로 나눈다. 하위 배열 A는 피벗 요소보다 작은 값을, 하위 배열 B는 피벗 요소보다 크거나 같은 값을 분류한다.

  ㉢ 하위 배열 A와 B에 ㉠, ㉡을 재귀적으로 적용한다.

④ 퀵 정렬의 의사 코드(psuedo code)는 다음과 같다.

 

 

⑤ 퀵 정렬의 소스 코드는 다음과 같다.

  ㉠

  ㉡

  ㉢

  ㉣

⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮
㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭
ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜ