JAVA/자료구조

힙 정렬

도전하는일반인 2021. 11. 4. 13:43

들어가기 전에

힙을 이용하여 숫자 배열을 정렬하는 힙 정렬 알고리즘에 대해 살펴보도록 하겠습니다.

 

학습 목표

힙 정렬 알고리즘의 원리를 이해하고 직접 해 볼 수 있습니다.

 

핵심 단어

  • 힙 정렬 알고리즘
  • 시간 복잡도

 

힙:정렬

 

힙 규칙에 맞게 숫자의 순서를 맞추는 과정을 힙 정렬 알고리즘이라고 합니다. 영상에서와 같이, 임의의 숫자들을 나열하고 힙 규칙에 맞게 TrickleDown을 반복하면 그 숫자들이 정렬됩니다.

 

힙 정렬 알고리즘의 시간 복잡도는  O(nlogn)O(nlogn) 입니다. 두 수를 비교해서 하나를 고르는 방식으로 숫자를 골라내기 때문입니다. (총 n개의 숫자를 logn개의 숫자와 비교합니다.)

 

숫자들의 순서를 바꿔 정렬하기 때문에 데이터의 복사본을 만들 필요가 없다는 점이 힙 정렬의 장점입니다.

 


 

생각해보기


1) 힙 정렬 알고리즘 외의 정렬 방법에는 어떤 것이 있을까요?

 

나의 생각 : 선혈 정렬, 버블 정렬, 삽입 정렬 등이 있다.

 

 

출처 : https://www.boostcourse.org/cs204/lecture/626046?isDesc=false