[알고리즘] 힙 정렬(Heap Sort) [힙 트리를 활용한 정렬 알고리즘]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 힙 정렬(Heap Sort)이란? 선택 정렬과 거의 같은 알고리즘으로, 가장 큰 원소를 뒤로 보내는 데에 매번 쭉 돌면서 알아내느냐 힙을 사용하여 알아내느냐가 유일한 차이점이다. - 힙 정렬의 정렬 과정 원소들을 전부 힙에 삽입한다. 힙의 루트에 있는 값은 남은 수들 중에서 최솟값(혹은 최댓값)을 가지므로 루트를 출력하고 힙에서 제거한다. 힙이 빌 때까지 2의 과정을 반복한다.
[알고리즘] 삽입 정렬(Insertion Sort) [값을 적절한 위치에 끼워넣는 정렬 알고리즘]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 삽입 정렬(Insertion Sort)이란? k번째 원소를 1부터 k-1까지와 비교해 적절한 위치에 끼워넣고 그 뒤의 자료를 한 칸씩 뒤로 밀어내는 방식 → 선택 정렬과 함께 인간에게 뭔가를 정렬하라고 하면 무의식적으로 사용하는 대표적인 알고리즘 ex) 카드 게임을 할 때나 번호대로 도서를 정리할 때 사용
[알고리즘] 선택 정렬(Selection Sort) [어떤 원소를 넣을지 선택하는 정렬 알고리즘]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 선택 정렬(Selection Sort)이란? 1번째부터 끝까지 훑어서 가장 작은 게 1번째, 2번째부터 끝까지 훑어서 가장 작은 게 2번째, …해서 (n-1) 번 반복한다. 어떻게 정렬이 되어 있든 일관성 있게 n(n-1)​/2에 비례하는 시간이 걸린다. → 인간이 사용하는 정렬 방식을 가장 많이 닮았다. (버블 정렬보다 두 배 정도 빠르다.) - 파생형 : 이중 선택 정렬(Double Selection Sort) 선택 정렬의 파생형으로, 끝까지 훑어서 최솟값과 최댓값을 동시에 찾아낸 뒤 최솟값은 1번째와 바꾸고 최댓값은 끝과 바꾼 다음 훑는 범위를 양쪽으로 한 칸씩 줄여서 반복하는 방식 → 선택 정렬에 칵테일 정렬 방식을 도입