← 全部笔记

冒泡排序与复杂度

计算机算法排序
冒泡排序

每一轮把当前最大的元素「冒」到右侧。

伪代码
text
for i = n-1 down to 1: for j = 0 to i-1: if a[j] > a[j+1]: swap(a[j], a[j+1])
复杂度

最坏与平均约为 O(n2)O(n^2),最好(已有序且有提前退出)可达 O(n)O(n)。

T(n)=∑i=1n−1i=n(n−1)2T(n)=\sum_{i=1}^{n-1}i=\frac{n(n-1)}{2}
流程

流程图加载中…

科普成片选「算法」镜头类型 algo: sort,会用柱状条动画演示比较与交换。