二进制搜索与顺序搜索

时间:2018-09-30 17:06:02

标签: java algorithm sorting search

对于这些特定情况,在什么数组大小下最好使用顺序搜索而不是二进制搜索(需要首先排序)。第一种情况是数组的所有值只是随机数而没有排序时。第二种情况是将数组的值或随机数从最小到最大或从最大到最小按数字排序。对于搜索,假定您仅尝试在数组中找到一个数字。

情况1:随机数

案例2:已经排序

2 个答案:

答案 0 :(得分:0)

二进制搜索总是更好。但是二进制搜索始终要求对数组进行排序。

答案 1 :(得分:0)

顺序搜索算法的最坏情况运行时间为O(n),并且不依赖于数据是否已排序。

二进制搜索算法的最坏情况下运行时间为O(logn),但是,为了使用该算法,必须对数据进行排序。如果未对数据进行排序,则对数据进行排序将花费O(nlogn)时间。

因此:

情况1:如果不对数据进行排序,则顺序搜索将节省O(n)时间,从而提高了时间效率。二进制搜索将要求数据按O(nlogn)排序,然后搜索O(logn)。因此,时间复杂度为O(nlogn)+ O(logn)= O(nlogn)。

情况2:对数据进行排序时,二进制搜索将更节省时间,因为它仅需要O(logn)时间,而顺序搜索仍将花费O(n)时间。