Lab 7 Problem 2
Lab 7 Problem 2
class MaxHeap {
private:
int heap[MAX_SIZE];
int size;
if (largest == index)
break;
swap(heap[index], heap[largest]);
index = largest;
}
}
public:
MaxHeap() {
size = 0;
}
void heapSortDescending() {
int originalSize = size;
while (size > 1) {
swap(heap[0], heap[size - 1]);
size--;
heapifyDown(0);
}
cout << "Sorted in descending order: ";
for (int i = 0; i < originalSize; ++i)
cout << heap[i] << " ";
cout << endl;
size = originalSize;
}
void displayHeap() {
cout << "Current heap: ";
for (int i = 0; i < size; ++i)
cout << heap[i] << " ";
cout << endl;
}
};
int main() {
MaxHeap h;
int initial[] = {45, 36, 54, 27, 63, 72, 61, 18};
int n = sizeof(initial) / sizeof(initial[0]);
h.buildHeap(initial, n);
return 0;
}