当前位置: 编程技术>c/c++/嵌入式
C语言对堆排序一个算法思路和实现代码
来源: 互联网 发布时间:2014-10-25
本文导语: 算法思想简单描述: 堆排序是一种树形选择排序,是对直接选择排序的有效改进。 堆的定义如下:具有n个元素的序列(h1,h2,...,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(hi=1; k--){ t = *(x+0); *(x+0) = *(x+k); *(x+k) = t; sift(x...
算法思想简单描述:
堆排序是一种树形选择排序,是对直接选择排序的有效改进。
堆的定义如下:具有n个元素的序列(h1,h2,...,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(hi=1; k--){ t = *(x+0); *(x+0) = *(x+k); *(x+k) = t; sift(x,k,0); } } void main(){ #define MAX 4 int *p, i, a[MAX]; p = a; printf("Input %d number for sorting :n",MAX); for (i=0; i