Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 排序代码的运行时间_Algorithm_Sorting - Fatal编程技术网

Algorithm 排序代码的运行时间

Algorithm 排序代码的运行时间,algorithm,sorting,Algorithm,Sorting,运行时间T(n)是多少? 问题在于内部循环(对于j=(i+2)到n) 内部循环的最坏情况是什么?最好的情况是什么?我认为它们是一样的,因为它是独立的,但我想确定运行时间是O(n^2) 每个内部循环需要O(n-i)时间,将i的值从0增加到n-1 这为您提供了以下时间复杂性: Sort(B) for i = 0 to (n-1) x = (i+1); for j = (i+2) to n if B[x] > B[j] x = j;

运行时间T(n)是多少? 问题在于内部循环(对于j=(i+2)到n) 内部循环的最坏情况是什么?最好的情况是什么?我认为它们是一样的,因为它是独立的,但我想确定运行时间是O(n^2)

每个内部循环需要
O(n-i)
时间,将
i
的值从0增加到
n-1

这为您提供了以下时间复杂性:

Sort(B)
for i = 0 to (n-1)
    x = (i+1);
    for j = (i+2) to n 
        if B[x] > B[j]
           x = j;
    if x != (i+1)
       temp = B[i+1];
       B[i+1] = B[x];
       B[x] = temp;
T(n)运行时间为O(n^2)

每个内部循环需要
O(n-i)
时间,将
i
的值从0增加到
n-1

这为您提供了以下时间复杂性:

Sort(B)
for i = 0 to (n-1)
    x = (i+1);
    for j = (i+2) to n 
        if B[x] > B[j]
           x = j;
    if x != (i+1)
       temp = B[i+1];
       B[i+1] = B[x];
       B[x] = temp;
T(n)运行时间为O(n^2)

每个内部循环需要
O(n-i)
时间,将
i
的值从0增加到
n-1

这为您提供了以下时间复杂性:

Sort(B)
for i = 0 to (n-1)
    x = (i+1);
    for j = (i+2) to n 
        if B[x] > B[j]
           x = j;
    if x != (i+1)
       temp = B[i+1];
       B[i+1] = B[x];
       B[x] = temp;
T(n)运行时间为O(n^2)

每个内部循环需要
O(n-i)
时间,将
i
的值从0增加到
n-1

这为您提供了以下时间复杂性:

Sort(B)
for i = 0 to (n-1)
    x = (i+1);
    for j = (i+2) to n 
        if B[x] > B[j]
           x = j;
    if x != (i+1)
       temp = B[i+1];
       B[i+1] = B[x];
       B[x] = temp;

T(n)如另一个答案所示,该算法的运行时间为O(n^2)。我只想指出,该算法在我看来并不完全正确,因为它无法对数组的第一个元素(在本例中为B[0])进行排序。

正如另一个答案所示,该算法的运行时间为O(n^2)。我只想指出,该算法在我看来并不完全正确,因为它无法对数组的第一个元素(在本例中为B[0])进行排序。

正如另一个答案所示,该算法的运行时间为O(n^2)。我只想指出,该算法在我看来并不完全正确,因为它无法对数组的第一个元素(在本例中为B[0])进行排序。

正如另一个答案所示,该算法的运行时间为O(n^2)。我只想指出,该算法在我看来并不完全正确,因为它无法对数组的第一个元素(本例中为B[0])进行排序。

对于给定的外循环迭代,内循环的迭代次数始终相同,不考虑输入。对于给定的外循环迭代,无论输入如何,内循环始终具有相同的迭代次数。对于给定的外循环迭代,内循环始终具有相同的迭代次数,不考虑输入。对于给定的外循环迭代,无论输入如何,内循环始终具有相同的迭代次数。这不是本例的精确公式,因为内循环不具有n-i-2。但是我们当然可以去掉这2个,因为它不会改变整个画面。它将类似于(n*(n+1)/2)-2*n@GiorgiNakeuri它不应该给出精确的公式,它是常数的近似值,我添加了CONST*或clarity。对于这个例子,它不是精确的公式,因为内环没有n-I-2。但是我们当然可以去掉这2个,因为它不会改变整个画面。它将类似于(n*(n+1)/2)-2*n@GiorgiNakeuri它不应该给出精确的公式,它是常数的近似值,我添加了CONST*或clarity。对于这个例子,它不是精确的公式,因为内环没有n-I-2。但是我们当然可以去掉这2个,因为它不会改变整个画面。它将类似于(n*(n+1)/2)-2*n@GiorgiNakeuri它不应该给出精确的公式,它是常数的近似值,我添加了CONST*或clarity。对于这个例子,它不是精确的公式,因为内环没有n-I-2。但是我们当然可以去掉这2个,因为它不会改变整个画面。它将类似于(n*(n+1)/2)-2*n@GiorgiNakeuri它不应该给出精确的公式,它是常数的近似值,我加了常数*或清晰度。