99问答网
所有问题
用c语言,如何快速判断一个很大数组里面有没有给定的数字
不用循环的方法有没有
举报该问题
推荐答案 2013-03-25
数组很小的话,可以使用一次遍历。O(n)
数组稍大的话可以使用排序折半查找 O(logn)
数组再大的话可以使用hash,判断这个键值是否存在O(1)
数组非常大的话,如上百亿千亿,可以使用BF(Bloom Filter),即多个hash,来判断。但该方法只能保证一个数如果不在数组的话一定不在,如果结果为在,则不一定在。
追问
第三个用的什么函数实现
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/BzBtOevjz.html
其他回答
第1个回答 2013-03-26
大数据检索一般需要对数据源先做处理
1.线性表排序之后可以用折半
2.线性表生成二叉排序树,用树检索
3.哈希表
4.等等本回答被提问者采纳
第2个回答 2013-03-25
这个貌似无法判断、在没有赋值之前、里面是随机数、无法判断这个随机数到底是不是给定的。
追问
已经有数了,就是判断一个外来数数组里面有没有
第3个回答 2013-03-26
用define和循环结合就好了。
追问
具体一点
第4个回答 2013-03-25
去百度搜一下hash表的实现。
相似回答
大家正在搜
相关问题
c如何判断一个数能否等于给定数组中三个数和
c语言中find(数组名,数字)有什么作用
C语言判断一个数中含有某个数字
C语言编程:判断数组里有没有重复数字,有true,无fals...
C语言如何检查一个数组中元素的个数
判断一个数是否是数组中的成员,用C语言如何编程?
C语言中如何判断一个数组单元有没有被赋值?
c语言 判断字符数组里存放的是否为数字