Java 二进制搜索的最坏情况/最佳情况键?
有人能帮我回答这个问题吗?我该如何用数学方法证明这些键 构造任意非平凡数组a,该数组满足二进制 搜索使用Java 二进制搜索的最坏情况/最佳情况键?,java,time,complexity-theory,binary-search,Java,Time,Complexity Theory,Binary Search,有人能帮我回答这个问题吗?我该如何用数学方法证明这些键 构造任意非平凡数组a,该数组满足二进制 搜索使用 a) worst case lookup time b) best case lookup time 如果与a上的二进制搜索一起使用 查找ka,kb,需要多少个递归步骤?BS的最坏情况是log N,因为这是可能的最大拆分。最佳情况1(立即匹配) 注意-我不想做你的家庭作业,但示意图: 至于最坏情况的证据:尽可能长的分开 从n=n开始。拆分为[0,n/2],计数为n/2,[n/2+1,n)
a) worst case lookup time
b) best case lookup time
如果与a上的二进制搜索一起使用
查找
ka
,kb
,需要多少个递归步骤?BS的最坏情况是log N,因为这是可能的最大拆分。最佳情况1(立即匹配)
注意-我不想做你的家庭作业,但示意图:
- 至于最坏情况的证据:尽可能长的分开
- 从n=n开始。拆分为[0,n/2],计数为n/2,[n/2+1,n)计数为n-n/2-1,可能小于1:n为偶数时,n/2-1
- 所以对于最坏的情况,假设第一个,最长的,一半
- 这是N的连续一半,得到N/2/2/2…直到我们达到1;这是平方对数N
mid=N/2
开始并希望在最佳情况下立即成功时,N/2。对于最坏的情况,可能是最长的一半。ka=array[0];kb=array[array.length>>1];läser du algodat?:P