DaS*_*Stc 1 c++ arrays algorithm search binary-search-tree
让
int arr[]={0,1,2,-1,4,8,9,-1,17,32,56,128};
Run Code Online (Sandbox Code Playgroud)
数组排序不包括指定的数字-1,我想在数组中搜索一个元素(不是指定的数字).那么是否有任何算法满足以下条件?
例如,如果我想在前一个数组中搜索10,则返回值将为7.
提前致谢.
不,只需查看长度数组n,其中所有数字都是-1(您指定的数字).现在随机选择一个位置并用其他数字替换它.基本上你的数组看起来像这样:
[-1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1]
Run Code Online (Sandbox Code Playgroud)
现在,您无法使用O(log N)元素确定性地找到数字8的位置.
所以不,一般情况下你不能这样做.但是如果指定元素的数量非常小,我相信你可以修改二进制搜索来处理这种情况.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |