#include stdioh 堆排序函数声明void heapSortint arr int len; 建立大根堆函数声明void buildMaxHeapint arr int len; 维护大根堆函数声明void heapAdjustint arr int i int len; 打印数组函数声明void printArrayint arr int len;int main int ar
这是一个使用堆排序算法对输入的20个数进行排序的程序。程序首先通过输入函数将用户输入的20个数存储在数组中,然后调用heapSort函数对数组进行排序。在heapSort函数中,首先调用buildMaxHeap函数建立大根堆,然后通过循环将堆顶元素与最后一个元素交换,并调用heapAdjust函数重新构建大根堆。最后,程序调用printArray函数打印排序后的数组。
堆排序算法的核心思想是通过建立大根堆,将数组中的最大元素放在堆顶,然后将堆顶元素与最后一个元素交换位置,再重新构建大根堆。重复这个过程,直到整个数组有序。
在程序输出中,每次迭代后都会打印当前的堆,可以观察到堆在迭代过程中的变化。
原文地址: http://www.cveoy.top/t/topic/h5pt 著作权归作者所有。请勿转载和采集!