给定算法的最坏情况运行时间是多少

时间:2014-02-08 12:58:57

标签: algorithm

我的学术论文中有人问过这个问题。请让我知道答案?

 arrayFind(x, A)
    i =0 ;
    while( i < n ) {
       if(x==A[i])
           return i;
       else 
           i = i+1; 
   }
 return –1;

假设我们有一个算法find2D( ),用于在二维中找到元素x n x n数组A。算法find2D( )迭代A行并在每个行上调用算法arrayFind(),直到找到x或者搜索了A的所有行。

此算法的最差运行时间是什么

一个。如果每行中的元素都已排序?
湾如果每行中的元素没有排序?

1 个答案:

答案 0 :(得分:5)

根据给出的信息,排序/不排序对最坏情况没有影响。在这两种情况下,最糟糕的情况是,最新一行中的最新元素是要查找的元素。在这种情况下,运行时将为O(n ^ 2),其中n具有您使用n x n指出的含义。它是n x n,因为您必须遍历n行,然后在每行进行n次比较。

如果您使用二进制搜索,则排序的示例将具有O(n log n)的最差情况运行时,最坏的情况是,搜索的元素位于最后一行的中间。