用Java写一个小程序判断一个数组是不是heap 10

 我来答
flyingFish211
2011-02-25 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
挺简单的啊。。 关键在于理解heap
import java.util.Arrays;

public class Du {

public static void main(String[] args) {

int[] testAry1 = {1, 3, 5, 7, 9, 11};
System.out.println("{1, 3, 5, 7, 9, 11} is " + (isHeap(testAry1)? "": "NOT ") + "heap array.");

int[] testAry2 = {1, 3, 5, 7, 13, 9, 11};
System.out.println("{1, 3, 5, 7, 13, 9, 11} is " + (isHeap(testAry2)? "":"NOT ") + "heap array.");

}

/**
* Will receive an integer heap array, method will return true or false
* depending on whether the array is believed to be a valid heap or not
*
* @param heap
* 0-based integer array
* @return true if integer array is a heap, else false
*/
public static boolean isHeap(int[] heap) {

if(heap == null || heap.length == 0){
return false;
}

int[] ary = new int[heap.length];

for(int i = 0; i < heap.length; i++){
ary[i] = heap[i];
}

Arrays.sort(ary);

for(int i = 0; i < heap.length; i++){
if(ary[i] != heap[i]){
return false;
}
}

return true;
}
}

---------------
{1, 3, 5, 7, 9, 11} is heap array
{1, 3, 5, 7, 13, 9, 11} is NOT heap array
伏松桖0k
2011-02-24 · TA获得超过1826个赞
知道小有建树答主
回答量:1410
采纳率:100%
帮助的人:728万
展开全部
我也同等.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友faaf59f
2011-02-24 · TA获得超过536个赞
知道答主
回答量:145
采纳率:0%
帮助的人:83.6万
展开全部
是大根堆还是小根堆?
追问
只要判断是不是heap就可以了 就是满足最小的在最上面 每一个节点的孩子比他大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式