这是否意味着二进制搜索算法?

Does this mean binary search algorithm?

我必须编写一个小 Java 程序来查明执行搜索算法需要多长时间。

算法为:

Assume you have a search algorithm which, at each level of recursion, excludes half of the data from consideration when searching for a specific data item. Search stops only when one data item is left.

我想知道您对它是哪种搜索算法的看法。

如果您的数据已排序,那么是的,这就是二进制搜索算法。该算法属于 "Divide and Conquer" 策略。在此过程中,算法每进行一次数据划分,就会淘汰一半数据。基本假设是在应用算法之前对数据进行排序。

听起来像是二分搜索或半区间搜索,前提是您的集合或数据已排序,在 O(log n)

中的最坏情况和常见情况

如果一定要先排序,那么最好的算法就是O(n log n),再加上二分查找的O(log n),整体就变成了O(n log n)