Python/정렬

[Algorithm] Sort(정렬)

유일리 2024. 1. 5. 09:34
정렬이란?

 

정렬은 어떤 데이터셋이 주어졌을 때 이를 정해진 순서대로 나열하여 재배치하는 문제이다. 종류가 많으며 그리디 문제에 쓰이는 경우가 많다.

 

정렬의 종류
  • O(n²) : Insertion sort, Selection sort, Bubble sort
  • O(nlogn) : Quick sort, Merge sort, Heap sort
버블정렬(Bubble sort)
  • 인접한 두 원소를 비교
  • 왼쪽 원소>오른쪽 원소라면 swap
  • 가장 큰 원소부터 오른쪽에 정렬됨
  • 데이터가 하나씩 정렬되면서 비교 대상에서 제외
합병정렬(Merge sort)
  • 분할 정복 방식으로 설계된 알고리즘
  • 하나의 배열을 정확히 반으로 나눔
  • 나뉜 배열들을 정렬
  • 다시 하나의 배열로 합치기