堆排序
来源:互联网 发布:詹姆斯总决赛数据科比 编辑:程序博客网 时间:2024/06/02 06:14
package heapsort;import java.util.Arrays;public class HS1 {public static void main(String[] args) {int[] A={87,45,78,32,17,65,53,9,63};BuildHeap(A);System.out.println(Arrays.toString(A));}public static void BuildHeap(int A[]){int len=A.length;int index=len-1;int father;for(father=index/2-1;father>=0;father--){//父节点从中间向前面走AdjustDown(A, father, index);//第二个参数是父节点,第三个是最后一个元素的下标}for(int i=A.length-1;i>=0;i--){swap(A,0,i);//将第一个()与最后一个交换位置,然后堆去掉最后一个AdjustDown(A, 0, i-1);}}public static void swap(int[] A,int a,int b){int c;c=A[a];A[a]=A[b];A[b]=c;}public static void AdjustDown(int A[],int fa,int index){int b=A[fa];for(int left=2*fa+1;left<=index;left=2*left+1){//i是左孩子if(left+1<=index&&A[left]<A[left+1]){//如果有右孩子则比较left++;}if(b>=A[left]){break;}else{A[fa]=A[left];fa=left;//修改k}}A[fa]=b;}}
1 0
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- elasticsearch使用river同步mysql数据
- 封装一个函数afterDate(date,n),得到日期date的n天后的日期
- Ubuntu 14.04下Redis安装报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
- 计算机导论2--语言与算法
- READING NOTE: Weakly Supervised Cascaded Convolutional Networks
- 堆排序
- 未越狱iPhone访问限制密码忘了怎么办
- maven打包pom文件在windows和linux下的格式差异
- C#63课的主要内容
- 关于矩阵最通俗的解释
- C++ Primer课后练习 9-46
- JAVA小问题(持续更新)
- 线程总结
- 【12月6日】类的初始化(一):构造器和this关键字