cc6*_*g11 3 c++ algorithm search
面试官问我这个问题.如何为特定值搜索大型数组(数千或数百万个值).
我建议二进制搜索对项目进行排序并且数组大小较小的情况.如果你想要一个大数组中的最大值(值是1次传递后最右边的值),我还建议对冒泡排序算法进行1次迭代.
但我不确定哪些算法可以在固有的随机分类数组索引中提取值.
线性搜索.这将需要O(n).如果阵列大小在数千和数百万的范围内,那应该足够好.
如果您经常搜索操作.您可能希望将数组转换为哈希表.首先构建哈希表O(n),然后进行每个搜索操作O(1).解决方案1将O(n)用于您执行的每个搜索操作.
如果数组非常大,您可以利用多个线程同时搜索数组.将数组划分为多个部分,每个线程在其部分中搜索值.