adding heap sort
This commit is contained in:
@@ -118,4 +118,4 @@ organized heap data, but incur a O(n log n) cost. Why?
|
|||||||
|
|
||||||
## 23.10 Leetcode Exercises
|
## 23.10 Leetcode Exercises
|
||||||
|
|
||||||
- [Leetcode problem 912: Sort an Array](https://leetcode.com/problems/implement-queue-using-stacks/). Solution: [p232_queue_using_stacks.cpp](../../leetcode/p232_queue_using_stacks.cpp).
|
- [Leetcode problem 912: Sort an Array](https://leetcode.com/problems/sort-an-array/). Solution: [p912_heapsort_array.cpp](../../leetcode/p912_heapsort_array.cpp).
|
||||||
|
|||||||
20
leetcode/p912_heapsort_array.cpp
Normal file
20
leetcode/p912_heapsort_array.cpp
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
vector<int> sortArray(vector<int>& nums) {
|
||||||
|
vector<int> result;
|
||||||
|
priority_queue<int> pq;
|
||||||
|
int size = nums.size();
|
||||||
|
// build the priority queue, which by default is a max heap
|
||||||
|
for(int i=0;i<size;i++){
|
||||||
|
pq.push(nums[i]);
|
||||||
|
}
|
||||||
|
// pop out the largest element size times
|
||||||
|
for(int i=0;i<size;i++){
|
||||||
|
result.push_back(pq.top());
|
||||||
|
pq.pop();
|
||||||
|
}
|
||||||
|
// sort data in ascending order
|
||||||
|
reverse(result.begin(),result.end());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user