这是否意味着二进制搜索算法?
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)
我必须编写一个小 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)