用c语言,如何快速判断一个很大数组里面有没有给定的数字

不用循环的方法有没有

数组很小的话,可以使用一次遍历。O(n)
数组稍大的话可以使用排序折半查找 O(logn)
数组再大的话可以使用hash,判断这个键值是否存在O(1)
数组非常大的话,如上百亿千亿,可以使用BF(Bloom Filter),即多个hash,来判断。但该方法只能保证一个数如果不在数组的话一定不在,如果结果为在,则不一定在。追问

第三个用的什么函数实现

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-26
大数据检索一般需要对数据源先做处理
1.线性表排序之后可以用折半
2.线性表生成二叉排序树,用树检索
3.哈希表
4.等等本回答被提问者采纳
第2个回答  2013-03-25
这个貌似无法判断、在没有赋值之前、里面是随机数、无法判断这个随机数到底是不是给定的。追问

已经有数了,就是判断一个外来数数组里面有没有

第3个回答  2013-03-26
用define和循环结合就好了。追问

具体一点

第4个回答  2013-03-25
去百度搜一下hash表的实现。
相似回答