java-二进制搜索的比较数
作者:互联网
使用二进制搜索在数组中定位所有n个排序的不同整数所需的比较总数是多少?我认为数字是n log2 n(2是基数),但是我不确定.你怎么看?
解决方法:
如果您想要一个确切的答案,那么显然不是N log(N)或N log2(N).对于大多数整数N来说,logN和log2不是有理数,但是比较次数必须是整数值.
同样,确切的答案将取决于二进制搜索算法的实现细节.例如,如果“比较”是一个返回true和false的简单关系,则与“ comparison”返回负,零或正数时相比,需要进行更多的比较. (在后一种情况下,您可以在算法过早按下键时使之短路.)
标签:binary-search,java,algorithm 来源: https://codeday.me/bug/20191106/2000515.html