一、堆排序
堆排序是我们所掌握的重要的排序算法之一,理解并使用,可以让我们对它的了解更加深刻:
话不多说上代码
java
public class HeapSort {
private int [] a;
public HeapSort(int[] a){
this.a=a;
}
public void swap(int n,int m){
int t;
t=a[n];
a[n]=a[m];
a[m]=t;
}
public void sort(){
int n = a.length-1;
while(n!=0){
while(true){
int p=(n-1)/2;
int flag=0;
while(p!=0){
if(2*p <= n && a[p] > a[2*p]){
swap(p,2*p);
flag=1;
}
if(2*p+1 <= n && a[p] > a[2*p+1]){
swap(p,2*p+1);
flag=1;
}
p--;
}
if(flag==0){
break;
}
}
swap(1,n);
n--;
}
}
public void display(){
for(int i=1; i<a.length; i++){
System.out.print(a[i]+" ");
}
}
public static void main(String[] args){
int[] a ={0,3,4,6,2,1,7,5,8,9};
HeapSort h = new HeapSort(a);
h.sort();
h.display();
}
}
网友评论