0
我想實現一個基於數組的堆排序,其排序的前幾個,但不完全,我不明白爲什麼。以下是我的工作:堆排序outfoxing我
public class HeapSort{
static int[] numbers = new int[] { 0, 13, 8, 5, 10, 9, 15, 1, 2, 3, 6, 4, 12, 14, 7, 11 };
static int[] array = new int[16];
public static void main(String[] args) {
for (int i = 0; i < 15; i++) {
array[i] = numbers[i];
if (i > 1)
sort(i);
}
for (int i = 1; i < 15; i++) {
System.out.println(array[i]);
}
}
public static void sort(int i) {
int parentLocation = i/2;
int childLocation = i;
int parentValue = array[parentLocation];
int childValue = array[childLocation];
if (childValue < parentValue) {
array[parentLocation] = childValue;
array[childLocation] = parentValue;
sort(parentLocation);
}
}
}
我敢肯定,它在我的使用遞歸的故障召回父的那種,但我不明白爲什麼?
TIA
答案應該有比鏈接更多的內容。 http://meta.stackexchange.com/a/113848/188036 – Jake1164