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
|
||||
|
||||
- [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