# Algorithm
## Buildheap
```cpp
class Solution {
public:
void maxHeapify(vector<int>& arr, int i, int heapSize) {
int left = i * 2 + 1, right = i * 2 + 2, largest = i;
if (left < heapSize && arr[left] > arr[largest]) {
largest = left;
}
if (right < heapSize && arr[right] > arr[largest]) {
largest = right;
}
if (largest != i) {
swap(arr[i], arr[largest]);
maxHeapify(arr, largest, heapSize);
}
}
void buildMaxHeap(vector<int>& arr, int heapSize) {
for (int i = heapSize / 2; i >= 0; --i) {
maxHeapify(arr, i, heapSize);
}
}
}
```