冒泡排序(Bubble Sort)
冒泡排序(Bubble Sort)冒泡排序,有时也被称做沉降排序,是一种比较简单的排序算法。这种算法的实现是通过遍历要排序的列表,把相邻两个不符合排列规则的数据项交换位置,然后重复遍历列表,直到不再出现需要交换的数据项。当没有数据项需要交换时,则表明该列表已排序。
复杂度
算法 | 最好情况 | 平均情况 | 最坏情况 | 空间复杂度 | 稳定性 |
---|---|---|---|---|---|
冒泡排序 | O(n) | O(n2) | O(n2) | O(1) | 稳定 |
ES6实现
- 普通版冒泡排序
function BubbleSort(array) {
let len = array.length;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len-i-1; j++) {
if (array[j]> array[j+1]) {
[array[j],array[j+1]] = [array[j+1],array[j]];
}
}
}
return array;
}
- 优化版冒泡排序
function BubbleSort(originalArray) {
const array = [...originalArray];
let swapped;
for (let i = 0; i < array.length; i++) {
swapped = true;
for (let j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j+1]) {
[array[j],array[j+1]] = [array[j+1],array[j]]
swapped = false;
}
}
if (swapped) {
break;
}
}
return array;
}
参考
相关阅读
JavaScript的排序算法——冒泡排序
JavaScript的排序算法——选择排序
JavaScript的排序算法——插入排序
JavaScript的排序算法——归并排序
JavaScript的排序算法——快速排序
网友评论