具体思路:
- 循环体内部每次执行一次比较,比较相邻两数的大小。
- 内层循环控制两两比较的次数,内层循环跑一遍,总能把最大或者最小的数冒泡到最右边
- 外层循环控制冒泡次数,也就是内部循环跑的趟数,为数据规模n。
function bubblingSort(array) { for (let i = 0; i < array.length - 1; i++) { for (let j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { let z = array[j]; array[j] = array[j + 1]; array[j + 1] = z; } } } return array; }相关术语:
稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;
不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
内排序:所有排序操作都在内存中完成;
外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;
时间复杂度: 以数据规模n为基准,一个算法执行所耗费的时间。
空间复杂度: 以数据规模n为基准,一个算法执行所需内存的大小。
冒泡排序时空复杂度及稳定性:
平均时间复杂度:o(n2);
空间复杂度:o(1);
稳定性:稳定;
📦 前端资源合集 | 持续更新
🟢 前端0到1【持续更新】→ https://pan.quark.cn/s/5df55ccff7c4
🔵 前端进阶【持续更新】→ https://pan.quark.cn/s/2dec1c87b3ec
🟣 前端2026最新【持续更新】→ https://pan.quark.cn/s/77c8fa94161c
🔴 AI最新学习资料 → https://pan.baidu.com/s/1P9X2Qk_Fby3rFNVGw_WKow?pwd=46XG 提取码:46XG
觉得有用就点个赞+收藏,关注我持续分享前端干货 💡