我对长度为 5 的数组执行了以下排序算法:
int myarray[5] = {2,4,3,5,1};
int i;
for (i = 0; i < 5; i++)
{
printf("%d", myarray[i]);
int j;
for (j=i+1; j < 5; j++)
{
int tmp = myarray[i];
if (myarray[i] > myarray[j]) {
tmp = myarray[i];
myarray[i] = myarray[j];
myarray[j] = tmp;
}
}
}
我相信这种排序算法的复杂性是O(n*n)
因为您将每个元素与其他元素进行比较。但是,我也注意到,每次我们在外循环中创建时,我们都不会与所有其余部分进行比较,而是与其余部分进行比较 - i。复杂度会是多少?