Algorithm 排序代码的运行时间
运行时间T(n)是多少? 问题在于内部循环(对于j=(i+2)到n) 内部循环的最坏情况是什么?最好的情况是什么?我认为它们是一样的,因为它是独立的,但我想确定运行时间是O(n^2) 每个内部循环需要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;
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它不应该给出精确的公式,它是常数的近似值,我加了常数*或清晰度。