冒泡排序(英语:Bubble Sort)又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
假定数组为arr,长度为n
第1个元素开始,比较n-1次,第1次走完,最大(or最小)已经在最后一个位置上。
第2个元素开始,比较n-2次,第2次走完,第二大(or第二小)在倒数第二个位置上。
…
第n-1个元素开始,比较1次。
第n个元素,不需要比较。
代码长这样:
var sort = (arr) => {
if (!arr || arr.length === 1) return arr
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换方式一
// let temp = arr[j]
// arr[j] = arr[j + 1]
// arr[j + 1] = temp
// 交换方式二
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
}
}
}
return arr
}