基本过程


Python 实现

tim-chow 的 Github


时间复杂度

冒泡排序中的基本操作是交换元素。在最好的情况下,也就是序列直接有序,那么时间复杂度是 O(n);在最坏的情况下,也就是序列是倒序的,那么时间复杂度是:

T(n) = (n - 1) + (n - 2) + ... + 1 = n * (n - 1) / 2 = n2 - n / 2

所以,时间复杂度是 O(n2)

空间复杂度

冒泡排序除了在交换数据元素时,用到了一个临时变量外,没有申请其它空间,所以空间复杂度是:O(1)。