面试官问我这个问题。如何在大型数组(数千或数百万个值)中搜索特定值。
我建议对项目进行排序且数组大小较小的情况进行二进制搜索。如果您想要大数组中的最大值(值在 1 遍后位于最右边),我还建议对冒泡排序算法进行 1 次迭代。
但我不确定哪些算法可以在数组索引的固有随机分类中提取值。
最佳答案
线性搜索。这将花费
O(n)
。如果数组大小在几千和几百万之间应该就足够了。如果您更频繁地进行搜索操作。您可能希望将数组转换为哈希表。最初构建哈希表需要
O(n)
,然后每次搜索操作都需要O(1)
。解决方案 1 将为您执行的每个搜索操作花费O(n)
。如果数组非常大,您可以利用多个线程同时搜索数组。将数组分成多个部分,每个线程在其部分中搜索值。
关于c++ - 如何在 C++ 中搜索一个非常大的数组以获取特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391683/