选择排序:选择排序的思路大致是,找到数据结构中最小的,放到第一位;找到第二小的,放到第二位··· 以此类推 来实现一下选择排序
function selectionSort(arr) {
const {
length
} = arr
let indexMin
// 开始一个内循环,从第 i 个下标开始;由于总是从 0 开始,**所以第一轮在寻找的是 最小的值,并要将找到的值放入第一位;此后的每轮都是再找 第 i 大的值 ,并放入第 i 位**
for (let i = 0; i < length - 1; i++) {
// 假设第 i 大的值为 i ,并约定一个变量存储
indexMin = i
// 开始一个内循环,从第 i 个下标开始
for (let j = i; j < length; j++) {
if (arr[i] > arr[j]) {
// 若下标为 i 的元素大于下标为 j 的元素,那么将** j **下标赋值给**约定的变量**
indexMin = j
}
}
// 结束一轮循环, 判断下标i和indexMin是否为相等 若不相等才进行交换;此举可以跳过第一个元素 与 第一个元素的比较
if (i !== indexMin) {
[arr[i], arr[indexMin]] = [arr[indexMin], arr[i]]
}
}
return arr
}
array = selectionSort([11, 423, 534, 1223, 5345, 745, 73, 123]) // 11,73,123,423,534,745,1223,5345
console.log(array.join(), '新的排序---')
方法二:
const arr = [10, 4, 5, 6, 3, 1]
for (let i = 0, len = arr.length, min; i < len; i++) {
min = arr[i]
for (let j = i + 1; j < len; j++) {
if (arr[j] < min) {
let c = min;
min = arr[j]
arr[j] = c
}
}
arr[i] = min
}
console.log(arr);