java实现堆排序
来源:互联网 发布:js 空格换成换行符 编辑:程序博客网 时间:2024/06/07 00:08
1.堆排序的的实现,分为大顶堆和小顶堆,大顶堆就是,把子节点和父节点中,大的值,替换在父节点中,这样会导致根节点中的值是最大的值,再把根中的值和最后一位进行替换,然后再把指针往前移一位,小顶堆的原理,也是差不多,就是把最小的值替换在根中,再把根中元素和最后一位进行替换
实现如下
public static void heapSort(int[] array){for(int i=0;i<array.length;i++){//array.length为什么减1,因为角标从0开始jianDui(array,array.length-1-i);replace(array,0,array.length-1-i);}}
//利用一维数组进行建堆
public static void jianDui(int[] array,int len){//(len-1)/2是在取父节点for(int i=(len-1)/2;i>=0;i--){int k=i;//记录父节点while(k*2+1<=len){//判断是否有左子节点int leftNode = k*2+1;//记录左子节点if(leftNode<len){if(array[leftNode]<array[leftNode+1]){leftNode++;}}if(array[leftNode]>array[k]){replace(array,k,leftNode);k=leftNode;}else{break;}}}}
public static void replace(int[] array,int k,int len){int temp=array[k];array[k]=array[len];array[len]=temp;}
0 0
- 堆排序Java实现
- 堆排序-java实现
- 堆排序 Java实现
- java实现堆排序
- java实现堆排序
- Java实现堆排序
- java实现堆排序
- JAVA实现堆排序
- java实现堆排序
- java 实现堆排序
- Java实现堆排序
- Java实现堆排序
- Java实现堆排序
- java实现堆排序
- JAVA 堆排序实现
- 堆排序java实现
- java堆排序实现
- java实现堆排序
- 局域网中如何访问其他主机上NAT方式的虚拟机
- mysql整型bigint、int、mediumint、smallint 和 tinyint的语法介绍
- Oracle同时更新两记录
- 派生表别名 python编码 enca命令 sys.exit(1) 2016.05.26回顾
- Spring JavaConfig @Import实例
- java实现堆排序
- zhtml页面没有自动提示功能问题的解决
- shell常用命令之六 alias
- 计算机图形学(二)输出图元_15_字符图元
- 15 个 Android 通用流行框架大全
- cp: 无法通过符号链接"文件名" 进行操作 问题
- 一条命令搞定nginx安装
- zigbee基础应用(一)流水灯
- myeclipse修改项目名称后,部署到tomcat问题