冒泡排序
* 定义: 通过一种算法,将一个乱序的数组,调整为指定顺序的数组(从大到小/从小到大)
需求:将变量 arr 按顺序排列
核心:将数组 前一项与后一项 交换位置
var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
for (var k = 0
for (var i = 0
if (arr[i] > arr[i + 1]) { //数组里的前一项大于后一项,然后前一项和后一项的交换位置
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
}
console.log(arr)
选择排序
* 定义: 通过一种算法,将一个乱序的数组,调整为指定顺序的数组(从大到小/从小到大)
核心:先假设置下标0的数值为最小值,分别语=与后边的数值进行比较,最小的数值会被记录,并与假设的最小值交换位置,
预处理(并非完整代码,方便理解)
先假设置下标0的数值为最小值
var minIndex = 0 //假设最小值第一次为下标1的数字
for(i = 1
if(arr[minIndex] > arr[i]){ //如果当前分支执行, 说明在数组中找到了一个 比假设的最小值要小的 元素
minIndex = i //记录真实的最小值
}
}
var temp = arr[0] // 存储 数组下标0的值
arr[0] = arr[minIndex] // 将下标0的值重新赋值 当前数组中最小的值
arr[minIndex] = temp // 将 下标 minIndex 的值 重新赋值为 arr[0] 原本的值 此时就完成了 真实最小值与假设最小值位置的交换0
** 完整代码
var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
for(var k = 0
var minIndex = k
for(i = k+1
if(arr[minIndex] > arr[i]){
minIndex = i
}
}
var temp = arr[k]
arr[k] = arr[minIndex]
arr[minIndex] = temp
}
console.log(arr)