您的位置:首页 > 其它

堆排序

2017-09-13 10:22 29 查看
package base;

import java.util.Arrays;

/**
* Created by shanks on 17/8/5.
*/
public class HeapSort {
public static void main(String[] args) {
int a[] = { 16, 7, 17, 3, 8, 20,15 };
System.out.println(Arrays.toString(a));
heapSort(a);
System.out.println(Arrays.toString(a));
}

public static void heapSort(int[] array) {
int i;
for(i=array.length/2-1;i>=0;i--){
adjastHeap(array, i, array.length);
}
for (i=array.length-1;i>0;i--){
int temp=array[0];
array[0]=array[i];
array[i]=temp;
adjastHeap(array, 0, i);
}
}

public static void adjastHeap(int[] array,int i,int len){
int temp=array[i];
for (int j=i*2+1;j<len;j=j*2+1){
if(j+1<len && array[j]<array[j+1]){
j++;
}
if(array[j]>temp){
array[i]=array[j];
i=j;
}else{
break;
}
}
array[i]=temp;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: