假设有个1000万或更多数据的数组,内容无序,怎么样快速的确定能否存在某个数

C语言 码拜 9年前 (2016-04-13) 674次浏览
面试遇到的,把本人搞懵了。
只要求判断能否存在。
本人觉得顺序遍历就可以了,遇到就跳出
还有更快的方法吗?
解决方案

10

假如这些数据只是放在一个数组里面,并且你还只是查找这一次的话。
本人觉得没有其他好方法,肯定是线性查询,一个一个的找。
反过来,本人觉得这道题目是考你怎么组织这些数据,可能在组织数据的时候
需要更加花时间,但是以后多次查询就可以更加高效了。
那么可以使用的方法非常多,常见的方法有Hash法、Bit-map法、Bloom filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双层桶法以及MapReduce法。

10

引用:

建立 哈希表 也需要遍历一次数组吧?

题目是考的是怎么样对数据进行索引,以便更加高效地查询;而不是只叫你从这堆无序的数据里面查一个数,假如是真是这样的话,这道题还有考的必要吗?


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明假设有个1000万或更多数据的数组,内容无序,怎么样快速的确定能否存在某个数
喜欢 (0)
[1034331897@qq.com]
分享 (0)