堆排序算法
来源:互联网 发布:南京seo公司优化 编辑:程序博客网 时间:2024/06/17 13:37
public class heapsort {//构成堆public static int[] heap(int[] a,int n) {int t;
//从最后一个非叶结点开始按照从大到小进行堆构建for (int i = n/2; i > 0; i--) {
if (i*2+1>n) {//如果最后一个非叶结点只有左子树if (a[i-1]<a[i*2-1]) {//如果子树数据大于根结点数据,交换数据t=a[i-1];a[i-1]=a[i*2-1];a[i*2-1]=t;}} else {//如果非叶结点有两个子树,如果子树中的大数据比根结点大,交换数据if (a[i*2]<a[2*i-1] && a[i-1]<a[i*2-1]) {t=a[i-1];a[i-1]=a[i*2-1];a[i*2-1]=t;} else if (a[i*2]>a[2*i-1] && a[i-1]<a[i*2]){t=a[i-1];a[i-1]=a[i*2];a[i*2]=t;}}}return a;}
//堆排序public static int[] sort(int[] a) {int n=a.length;int t;
//当数组中还有数据,将根结点中的数据取出,放入数组尾部while (n>0) {heap(a, n);t=a[0];a[0]=a[n-1];a[n-1]=t;n--;}return a;}}
0 0
- 排序算法--堆排序
- 排序算法-堆排序
- 排序算法---堆排序
- 【排序算法】堆排序
- 排序算法-堆排序
- 排序算法---堆排序
- 排序算法--堆排序
- 排序算法----堆排序
- 排序算法--堆排序
- 排序算法 堆排序
- 排序算法-堆排序
- 排序算法:堆排序
- 排序算法---堆排序
- 【排序算法】堆排序
- 排序算法:堆排序
- 排序算法-堆排序
- 排序算法:堆排序
- 排序算法-堆排序
- 继承与多态
- PHP学习笔记——字符串类型;
- C语言中一个程序多次使用scanf函数
- Java内存区域
- Recommander System
- 堆排序算法
- 浅谈vue实现数据监听的函数 Object.defineProperty
- MFC使用ADO连接SQLServer数据库
- Hadoop
- 工厂模式
- 抽象类和抽象方法
- ajax方法
- GAN框架研究与思路整理
- 笔试小问题整理