我正在尝试实现检查给定数组是否为堆。
public static boolean Heap(int[] A)
{
for (int i = 1; i <= (A.length - 2) / 2; i++) {
if (A[i] < A[2 * i] || A[i] < A[2 * i + 1]) {
return false;
}
}
return true;
}
A = {50, 45, 40, 35, 20, 25, 20};
B = {45, 50, 40, 35, 20, 25, 20};
if (Heap(A)) {
System.out.println("Heap");
} else {
System.out.println("Not a heap");
}
当我为上面的数组调用函数时,它们都返回 true,而 B 应该在 if (A[i] < A[2 * i]...
我究竟做错了什么?
泛舟湖上清波郎朗
喵喔喔
相关分类