如果找不到搜索到的值,二进制搜索如何工作?
例如,如果您要在此数组中搜索60:
ANDMarks = {1, 6, 38, 39, 45, 55, 57, 61, 72, 73, 88, 96}
它是如何结束的?我已经干了代码,直到搜索到索引6和7.为了让我更容易得到我所要求的,这是我的干运行:
步骤:
1.找到中间值。
Middle value = (index of 1st element + index of last element)/2
Middle value = (0+11)/2
Middle value = 5
Middle value = element in 5th index => 55
Indexes 0 1 2 3 4 **5** 6 7 8 9 10 11
Elements 1 6 38 39 45 **55** 57 61 72 73 88 96
步骤2.中间值(55)!= 60
步骤3.中间值&lt;搜索有价值(55 <60)
考虑数组中位于中间值
之后的部分Indexes 6 7 8 9 10 11
Elements 57 61 72 73 88 96
第4步。
Middle value = (index of 1st element + index of last element)/2
Middle value = (6+11)/2
Middle value = 8
Middle value = element in 8th index => 72
Indexes 6 7 **8** 9 10 11
Elements 57 61 **72** 73 88 96
步骤5.中间值(72)!= 60
步骤6.中间值&gt;搜索值(72> 60)
考虑数组中位于中间值之前的部分。
Indexes 6 7
Elements 57 61
现在会发生什么?
答案 0 :(得分:0)
第7步。
Middle value = (index of 1st element + index of last element)/2
Middle value = (6+7)/2
Middle value = 6
Middle value = element in 8th index => 57
Indexes **6** 7
Elements **57** 61
步骤8.中间值(57)!= 60
步骤9.中间值&lt;搜索值(57 <60)
考虑数组中位于中间值之后的部分。
Indexes 7
Elements 61
步骤10.
Middle value = (index of 1st element + index of last element)/2
Middle value = (7+7)/2
Middle value = 7
Middle value = element in 8th index => 61
步骤11.中间值!= 60
步骤12.找不到值,执行结束。
答案 1 :(得分:0)
jmeter -Jjmeter.save.saveservice.output_format=xml -Jjmeter.save.saveservice.response_data.on_error=true ....
答案 2 :(得分:0)
我知道我来晚了一点,也许您现在已经知道了,但是,这个问题有超过5,000个观点,没有明确的解释。
可能是我的解释可以帮助任何有抱负的计算机科学爱好者。
Here is my explanation目前,我在堆栈溢出方面没有足够的声誉,因此它不允许我嵌入图像。请随意查看说明,因为其中包含图片。
如果有人喜欢或同意,请随时竖起大拇指,因为这会鼓励我在Stack Overflow上留下更多反馈和帖子。
下面是我的JavaScript代码,您可以在Chrome Developer工具中复制粘贴,对其进行调试,然后查看其工作原理。
mongoexport --db=testdb --collection=testcoll --query="{ \"number\": { \"$regex\": \"^(?!0)\" } }" --out=testoutput.json
快乐编码!