JAVA语言之堆排序
来源:互联网 发布:苹果助手软件下载 编辑:程序博客网 时间:2024/06/15 08:32
实现的是大根堆
代码如下:
public static int[] heapSort(int[] A, int n) {//先建立一个大根堆A=getDui(A);//进行一个个的排序拖出从根顶开始for(int i=n-1;i>0;i--){int t=A[0];A[0]=A[i];A[i]=t;//每次从根底取值然后长度-1然后进行大根堆的化简adjustHead(A, 0, i);}return A;} public static int[] getDui(int[] A){for(int i=A.length/2;i>=0;i--){ adjustHead(A,i,A.length); //每一个i都是根节点的值}return A;} public static void adjustHead(int[] A,int k,int n){ int tem=A[k];//每次保留根节点 for(int i=2*k+1;i<n;i=2*i+1){//此时i表示的是当前根节点k下的左结点 if(i!=n-1 && A[i]<A[i+1]){ i++;//根节点下面的左结点比右节点小,则i就要+1; } if(tem>A[i]){//这里是判断根节点和下面的左结点或者右节点进行比较 break; }else{//如果根不大于的话则又要进行下一层的比较 A[k]=A[i]; //所以这里有 k=i;//再进行k=i作为根节点的一层,当然i和k都小于长度n } } A[k]=tem;}
0 0
- JAVA语言之堆排序
- 排序算法之堆排序--Java语言
- 堆排序 java语言
- java语言 堆排序
- 堆排序之java
- java之堆排序
- 堆排序之java
- Java 排序之 堆排序
- java排序之堆排序
- 堆排序java语言描述
- C语言排序之堆排序篇
- 堆排序之Java实现
- java 数据结构之堆排序
- 堆排序之Java实现
- 堆排序之java实现
- 堆排序之Java实现
- java算法之堆排序
- 堆排序之java实现
- Linux下源码分析利器Ctags
- spark saveAsTextFile保存到文件
- JDBC----------->数据库深入
- android abd 命令
- OC 构造方法
- JAVA语言之堆排序
- 自定义UIButton
- the program javac can be found in the following packages ubuntu
- 7. 【创建和销毁对象】避免使用终结方法finalize
- java学习之路之web知识总结
- iOS 一个APP打开另一个APP
- 仿带噪点和横线的验证码自定义View
- php的tips(mysql语句union等问题)
- Fiddler Https出现 no root certificate was found的解决方法