42、冒泡排序
属于数组排序的算法之一
* 其实就是通过一种算法,将一个乱序的数组,调整为指定顺序的数组(从大到小/从小到大)
*
* 什么是算法?
* 解决某一个问题最简单的方式/最高效的方式
*
* 从1-10万,这组数字中,少了一个数字,要求我们找出来
* 常规写法:后一位 - 前一位 如果差值 === 2 那么就找出来了
*
* 将1-10万分为两组 1~5万 5万零一~10万 然后去找这两组数字中那一组的数量不够万,找到之后将这组再次一分为二
var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
console.log('原始数组:', arr)
for(var k = arr.length - 2; k >= 0; k--) {
console.log('k的值为', k)
for (var i = 0; i <= k; i++) {
console.log(arr[i] , arr[i+1])
if(arr[i] > arr[i+1]) {
var temp = arr[i+1]
arr[i+1] = arr[i]
arr[i] = temp
}
}
}
console.log('冒泡排序后的数组:', arr)
var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
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+1]
arr[i+1] = arr[i]
arr[i] = temp
}
}
}
console.log('冒泡排序后的数组:', arr)
43、选择排序
var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
console.log('原始数组:', arr)
for(var k = 0; k < arr.length; k++) {
var minIndex = k
for (var i = k + 1; i <= arr.length; i++){
if (arr[minIndex] > arr[i]) {
minIndex = i
}
}
var temp = arr[k]
arr[k] = arr[minIndex]
arr[minIndex] = temp
}
console.log('选择排序后的数组' ,arr)