</pre><pre name="code" class="java">import java.util.Iterator;
public class HeapSort {
static int r[] = { 0, 1, 4, 3, 2, 7, 5, 6, 8, 9 };
/**
* @param args
*/
public static void main(String[] args) {
sort();
for (int a : r) {
System.out.println(a);
}
}
public static void sort() {
int n = r.length-1;
int tmp;
for (int i = n / 2; i >= 1; i--) {
sift(i, n);
}
for (int i = n ; i >= 2; i--) {
tmp = r[1];
r[1] = r[i];
r[i] = tmp;
sift(1, i - 1);
}
}
public static void sift(int low, int high) {
int i, j;
i = low;
j = i * 2;
int tmp = r[i];
while (j <= high) {
if (j < high && r[j] < r[j + 1]) {
j++;
}
if (tmp < r[j]) {
r[i] = r[j];
i = j;
j = 2 * i;
} else {
break;
}
}
r[i] = tmp;
}
}
java实现堆排
最新推荐文章于 2024-07-14 22:24:20 发布