1. 冒泡排序 Bubble Sort
1.1 时间复杂度
假设数列中有n个元素元素比较次数为C,记录移动次数为M。
- 理想的情况是,数列是正序排列的,因此C和M都达到了最小值,其中C = n - 1, M = 0,此时排序的时间复杂度为: O ( n ) O(n) O(n)
- 最坏的情况是,数列是倒序排列的,则第一次需要进行 n - 1 趟排序,随后每次排序次数依次减一。因此C和M都达到了最大值,其中 C = ( n − 1 ) + ( n − 2 ) + . . . + 2 + 1 = n ∗ ( n − 1 ) 2 = O ( n 2 ) , C=(n-1)+(n-2)+...+2+1=\frac{n*(n-1)}{2} = O(n^2), C=(n−1)+(n−2)+...+2