冒泡排序:
属于数组排序的算法之一
其实就是通过一种算法, 将 一个乱序的数组, 调整为指定顺序的数组(从大到小/从小到大)
什么是算法?
解决某一个问题最简单的方式 / 最高效的方式
准备一个乱序数组
var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
console.log('原始数组: ', arr)
冒泡排序的核心: 对比数组前一项和后一项, 如果前一项的值较大, 那么就往后挪 (这个排序之后是按照从小到大的顺序)
for (var i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
console.log('1 轮冒泡排序后的数组: ', arr)
基础版
for (var k = 0; k < arr.length; k++) { // 决定执行几次 所谓的 冒泡排序
for (var i = 0; i < arr.length; i++) { // 拿到数组的前一项与后一项, 做一轮排序
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
}
console.log('冒泡排序后的数组: ', arr)
优化版
for (var k = 0; k < arr.length - 1; k++) {
for (var i = 0; i < arr.length - 1 - k; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
}