-5
從編程珍珠,已知array[1...n]
具有堆屬性,如果所有2<=i<=n x[i/2]<=x[i]
。此數組的堆性質
這裏是我的代碼:
進口的java.math。*;
public class Heap
{
public static void main(String[]args)
{
int x[]=new int[]{12,20,15,29,23,17,22,35,40,26,51,19};
for (int i=2;i<x.length;i++)
{
if (x[Math.round(i/2)]<=x[i])
{
System.out.println("heap");
}
else
{
System.out.println("not heap");
}
}
}
}
這裏我用了Math.round,因爲4/2和5/2是相同的,= 2。當我編譯這段代碼時,它會在最後一行顯示它不是堆。也許是因爲索引從1開始,我們不關注索引0,是嗎?
天哪這一點。寫句子。表格段落。對不起,如果你不是英語母語的人。 – 2010-05-15 18:16:09
這沒有意義。請慢慢重新閱讀,並嘗試重新格式化,併爲我們其他人重新提供這個信息。 – Axarydax 2010-05-15 18:17:26
你應該使用'for'循環來代替'int i = 1; while(...){i ++; } – 2010-05-15 18:19:52