var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]
// 0 1 2 3 4 5 6 7 8
/**
* for 循环第几次执行 假设谁是最小值 内层循环从 ? 开始 找到真实最小值后 和谁交换?
* k === 0 1 [0] 1 [0]
* k === 1 2 [1] 2 [1]
* k === 2 3 [2] 3 [2]
*/
for (var k = 0
// 1. 假设最小值的下标
var minIndex = k
// 2. 去数组中寻找真实最小值对应的下标
for (var i = k + 1
if (arr[minIndex] > arr[i]) {
minIndex = i
}
}
// 经过上述循环执行之后, 可以确定 minIndex, 内部一定存储着最小值对应的下标
// 3. 交换 假设最小值和真实最小值的位置
var temp = arr[k]
arr[k] = arr[minIndex]
arr[minIndex] = temp
}
console.log('选择排序后的数组: ', arr)
// // 1. 假设最小值的下标
// var minIndex = 0
// // 2. 去数组中寻找真实最小值对应的下标
// for (var i = 1
// if (arr[minIndex] > arr[i]) {
// minIndex = i
// }
// }
// // 经过上述循环执行之后, 可以确定 minIndex, 内部一定存储着最小值对应的下标
// // console.log(minIndex) // 8
// // 3. 交换 假设最小值和真实最小值的位置
// var temp = arr[0]
// arr[0] = arr[minIndex]
// arr[minIndex] = temp
// console.log('第 1 次选择排序后: ', arr) // [1, 8, 7, 6, 5, 4, 3, 2, 9]
// // 1. 假设最小值的下标
// var minIndex = 1
// // 2. 去数组中寻找真实最小值对应的下标
// for (var i = 2
// if (arr[minIndex] > arr[i]) {
// minIndex = i
// }
// }
// // 经过上述循环执行之后, 可以确定 minIndex, 内部一定存储着最小值对应的下标
// // 3. 交换 假设最小值和真实最小值的位置
// var temp = arr[1]
// arr[1] = arr[minIndex]
// arr[minIndex] = temp
// console.log('第 2 次选择排序后: ', arr) // [1, 2, 7, 6, 5, 4, 3, 8, 9]
// // 1. 假设最小值的下标
// var minIndex = 2
// // 2. 去数组中寻找真实最小值对应的下标
// for (var i = 3
// if (arr[minIndex] > arr[i]) {
// minIndex = i
// }
// }
// // 经过上述循环执行之后, 可以确定 minIndex, 内部一定存储着最小值对应的下标
// // 3. 交换 假设最小值和真实最小值的位置
// var temp = arr[2]
// arr[2] = arr[minIndex]
// arr[minIndex] = temp
// console.log('第 3 次选择排序后: ', arr)