堆排序
来源:互联网 发布:什么软件看股票最好 编辑:程序博客网 时间:2024/05/29 16:04
#include <stdio.h>void swap(int* a,int* b){ *a=*a^*b; *b=*b^*a; *a=*a^*b;}void heapAdjust(int* arr,int s,int m){ int rc=arr[s]; int j; for(j=2*s;j<=m;j*=2) { if(j<m&&arr[j]<arr[j+1]) j++; if(rc>=arr[j]) break;//There need not to adjust the heap arr[s]=arr[j]; s=j; } arr[s]=rc; int i;}void heapSort(int* arr,int len){ int i; for(i=len/2-1;i>=0;i--) heapAdjust(arr,i,len); for(i=len-1;i>0;i--) { swap(&arr[0],&arr[i]); heapAdjust(arr,0,i-1); }}int main(){ int arr[10]={1,3,5,7,9,2,4,6,8,0}; int i=0; /*for(i=4;i>=0;i--) { heapAdjust(arr,i,10); } for(i=9;i>0;i--) { swap(&arr[0],&arr[i]); heapAdjust(arr,0,i-1); }*/ heapSort(arr,10); for(i=0;i<10;i++) printf("%d\t",arr[i]); printf("\n");}
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- 两台linux服务器之间如何拷贝数据
- optgroup 属性实现 select 树结构
- Eclipse 中查看Android源码
- JS 工具类
- 回调函数
- 堆排序
- memcached 之token_t
- 数据结构之顺序队列的操作(C语言)
- 深入理解JavaScript系列
- 容器vector测试
- 四种shell变量
- 自动生成测试数据
- linux设置开机启动
- vxwroks 任务调度