冒泡排序
算法的名字由来是因为越小的元素会经由交换慢慢浮到数列的顶端
5 4 3 2 1
第一趟 : 4 3 2 1 5
第二趟 : 3 2 1 4 5
第三趟 : 2 1 3 4 5
第四趟 : 1 2 3 4 5
上述可见:5个元素,一共需要走4趟。
每一趟的交换次数:
第一趟 : 交换4次 5 - 0 - 1
第二趟 : 交换3次 5 - 1 - 1
第三趟 : 交换2次 5 - 2 - 1
第四趟 : 交换1次 5 - 3 -1
由此可推出:
N 个元素, 一共需要走 N -1 趟。
每一趟的交换次数:
第一趟 : 交换N-1次 N - 0 - 1
第二趟 : 交换N-2次 N - 1 - 1
第三趟 : 交换N-3次 N - 2 - 1
第四趟 : 交换N-4次 N - 3 -1
.
.
第m趟 : 交换 N-m次 N - (m-1) - 1
所以用JS来实现:
// 冒泡排序
var arr = [5,4,3,2,1]
// 外层循环管趟数
for (var i = 0; i <= arr.length - 1; i++){
// 内层循环,每一趟交换的次数
for (var j = 0; j <= arr.length - i -1; j++ ){
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}