정렬 알고리즘

Previous Next

정렬 알고리즘


정렬 알고리즘 시간복잡도

스크린샷 2022-09-27 오후 4 15 28




1) 삽입 정렬 Insertion

셸 정렬 Shell


2) 선택 정렬 Selection


3) 버블 정렬 Bubble


4) 병합 정렬 Merge


5) Quick Sort


Quick Sort 동작 방식

  1. 정렬 시 제자리로 보낼 pivot을 정합니다.(맨 앞에 있는 값을 pivot이라 가정)
  2. pivot을 제외하고 left, right라고 이름 붙은 포인터 2개를 둡니다.
  3. left는 pivot보다 큰 값이 나올 때 까지 오른쪽으로 이동하고 right는 pivot보다 작거나 같은 값이 나올 때 까지 왼쪽으로 이동합니다.
  4. 그 다음 두 포인터가 가리키는 원소의 값을 스왑합니다.
  5. 이걸 left와 right가 교차할 때 까지 반복하면 됩니다.
  6. right가 left보다 작아진 순간이 오면 pivot과 right을 스왑


Quick Sort 더 나은 피벗 고르기

  1. Randomized Quicksort: 피벗에 대해 임의의 인덱스 사용하기
  2. median-of-3: 피벗 파티션의 첫 번째, 중간 및 마지막 요소의 중앙값을 선택하여 피벗으로 사용



6) 계수 정렬 Counting




예상 질문