您的位置:首页 > 编程语言 > Java开发

heap sort java

2013-09-15 20:12 162 查看
public class Sort {

private static void sink(int[] a,int k,int N)
{
while (2 * k <= N)
{
int j = 2 * k;
if (j <  N && less(a,j,j+1)) j++;
if (!less(a,k,j)) break;
exch(a,k,j);
k = j;
}
}
public static void sort(int[] a)
{
int N = a.length;
for (int k = N / 2; k >= 1 ; k--)
sink(a,k,N);

while (N > 1)
{
exch(a,1,N);
sink(a,1,--N);
}

}
private static boolean less(int[] a, int i, int j)
{
return a[i - 1] < a[j - 1];
}
private static void exch(int[] a,int i,int j)
{
int temp = a[i - 1];
a[i - 1] = a [j - 1];
a[j - 1] = temp;
}
public static void main(String[] args)
{
int a[] = {9,9,8,7,6,5,4,3,2,4,1,4,5};
sort(a);
for (int i:a)
System.out.print(i);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: