// 计算BubbleSort的时间复杂度
void BunbbleSort(int *a, int n)
{
assert(a);
for (size_t end = n; end > 0; --end) {
int exchange = 0;
for (size_t i = 1; i < end; ++i) {
if (a[i - 1] > a[i]) {
Swap(&a[i - 1], &a[i]);
exchange = 1;
}
}
if (exchange == 0)
break;
}
}
精确:F(N) = N*(N-1)/2
时间复杂度: O(N^2)
算时间复杂度不能只看是几层循环,而要去看他的思想