算法导论,堆排序,c实现。
2015-01-12 12:47
323 查看
//只是建堆 #include<stdio.h> #include<stdlib.h> int heapmax(int A[],int i,int length); int heapsort(int A[],int length); int main(void) { int A[10]={4,1,3,2,16,9,10,14,8,7}; int length=sizeof(A)/sizeof(int); heapsort(A,length); int i; for(i=0;i<10;i++) printf("%d\n",A[i]); //printf("kkkkkkkkk%d\n",kkk); return 0; } int heapmax(int A[],int i,int length)//假设节点i的左右子树都是最大堆 { //int ob=i;printf("%d\n",ob); int l=2*i+1;//printf("%d\n",l); int r=2*i+2; int key=0; //int kkkk; //printf("%d-----%d----%d----%d\n",i,l,r,key); //int yyy=length; puts("Hola?"); //int length=sizeof(A)/sizeof(int); printf("%d~~~~\n",length); if(A[i]<A[l]&&l<length) key=l; else key=i; if(A[r]>A[key]&&r<length) key=r; if(key!=i) { int kkkk; kkkk=A[i]; A[i]=A[key]; A[key]=kkkk; heapmax(A,key,length); } } int heapsort(int A[],int length) { //length[A]=10; int i; for(i=(length-1)/2;i>=0;i--) heapmax(A,i,length); }
相关文章推荐
- 《算法导论的Java实现》 7 堆排序
- 《算法导论》CLRS算法C++实现(三)P75 堆排序
- 算法导论c++ 堆排序以堆类结构完整实现
- 算法导论 习题6.2-5 用迭代法实现堆排序
- 《算法导论》7、堆排序实现(C++)
- 算法导论:堆排序递归实现 (c语言)
- 读《算法导论》我来C语言实现(3)——堆排序和优先级队列
- 《算法导论的Java实现》 堆排序
- 算法导论堆排序Java实现
- 算法导论堆排序实现
- 算法导论-----------堆排序研究 (堆排序原理及算法实现(最大堆))
- 算法导论Java实现-堆排序(6.4章节)
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- 算法导论堆排序java实现
- 算法导论堆排序python实现
- 算法导论:堆排序(java实现)
- 算法导论(Introduction to Algorithms)之堆排序(C语言实现)
- 算法导论第6章实现堆排序的完整程序
- 算法导论 习题6.2-5 用迭代法实现堆排序
- 《算法导论》CLRS算法C++实现(三)P75 堆排序