#include using namespace std; int parent(int i){ return i/2; } int left(int i){ return 2*i+1 } int right(int i){ return 2*i+2 } void maxheap(int a, int i){ int l = left(i); int r = right(i); if (l>a[l]){ largest=l; } else () {largest = i}; if } void maxheap(int A[], int heapSize, int i) { int largest = i; int l = 2 * i + 1; int r = 2 * i + 2; if (l < heapSize && A[l] > A[largest]) { largest = l; } if (r < heapSize && A[r] > A[largest]) { largest = r; } if (largest != i) { swap(A[i], A[largest]); maxheap(A, heapSize, largest); } } int main(){ int element[] = {23, 17, 14, 6, 13, 10, 1, 5, 7, 12}; int arraySize = sizeof(element)/sizeof(element[0]); cout << "Before MAX_HEAPIFY: "; for (int i = 0; i < arraySize; i++) { cout << A[i] << " "; } cout << endl; MAX_HEAPIFY(A, arraySize, 0); cout << "After MAX_HEAPIFY: "; for (int i = 0; i < arraySize; i++) { cout << A[i] << " "; } cout << endl; return 0; } ________________________________________________ #include using namespace std; void MAX_HEAPIFY(int A[], int heapSize, int i) { int largest = i; int l = 2 * i + 1; int r = 2 * i + 2; if (l < heapSize && A[l] > A[largest]) { largest = l; } if (r < heapSize && A[r] > A[largest]) { largest = r; } if (largest != i) { swap(A[i], A[largest]); MAX_HEAPIFY(A, heapSize, largest); } } int main() { int A[] = {4, 10, 3, 5, 1}; int heapSize = sizeof(A)/sizeof(A[0]); return 0; } _________________________________________________________ #include using namespace std; int parent(int i){ return i/2; } int left(int i){ return 2*i+1; } int right(int i){ return 2*i+2; } void maxheap(int A[], int heapSize, int i) { int largest = i; int l = left(i); int r = right(i); if (l < heapSize && A[l] > A[largest]) { largest = l; } if (r < heapSize && A[r] > A[largest]) { largest = r; } if (largest != i) { swap(A[i], A[largest]); maxheap(A, heapSize, largest); } } void buildMaxHeap(int A[], int heapSize) { for (int i = heapSize / 2 - 1; i >= 0; i--) { maxheap(A, heapSize, i); } } void heapSort(int A[], int heapSize) { buildMaxHeap(A, heapSize); for (int i = heapSize - 1; i >= 1; i--) { swap(A[0], A[i]); maxheap(A, i, 0); } } int main(){ int element[] = {23, 17, 14, 6, 13, 10, 1, 5, 7, 12}; int arraySize = sizeof(element)/sizeof(element[0]); heapSort(element, arraySize); cout << "Sorted array: "; for (int i = 0; i < arraySize; i++) { cout << element[i] << " "; } cout << endl; return 0; } ____________________________________________________