자료구조 알고리즘
힙 정렬
__sapar
2024. 5. 30. 16:38
힙 자료구조를 이용하는 정렬.
O(nlogn)의 시간복잡도를 가진다.
맨 마지막 인덱스부터 정렬한다.
void HeapSort(vector<int>& v)
{
priority_queue<int, vector<int>, greater<int>> pq;
// O(NlogN)
// pq 에 데이터를 push 할 때는 시간 복잡도 logN이다.
// 그러나 여기서는 v의 모든 요소 N 개를 집어넣으니 NlogN이다.
for (int num : v)
pq.push(num);
v.clear();
// O(NlogN)
// 위와 같음
while (!pq.empty())
{
v.push_back(pq.top());
pq.pop();
}
}