我只是在学习排序(不是第一次)。在冒泡排序中,我们有以下代码。
int bubble_sort(int *arr, size_t n) {
size_t i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return 0;
}
如您所见,内循环有n-1
时间(在for循环中),这是可以理解的(a[i],a[i-1]
都涉及一次迭代),但外循环有i < n
,但它也适用于i < n-1
. 但是互联网中的大多数实现都具有 n
外循环值。对于最坏的情况,执行外循环n-1
效果很好5 4 3 2 1
。n-1
只是想知道,是否有任何一组输入在外循环期间不起作用。如果有请发帖并说明。谢谢。