仅仅提供代码实现,原理请问度娘。
1、 数据和工具类
module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];
module.exports.swap = function (list, i, j) {
let temp = list[i];
list[i] = list[j];
list[j] = temp;
};
module.exports.display = function (list) {
let str = "";
for (let i = 0; i < list.length; i++) {
str += list[i] + ", ";
}
console.log(str.replace(/, $/, ""));
};
2、选择排序
/**
* 选择排序
*/
const { list, swap, display } = require("./utils/common");
function selectSort(list) {
if (!list || list.length == 1) {
return;
}
//n-1轮循环
for (let i = 0; i < list.length - 1; i++) {
//剩下元素的最小元素
let min = list[i];
let key = i;
for (let j = i + 1; j < list.length; j++) {
if (min > list[j]) {
key = j;
min = list[j];
}
}
swap(list, i, key);
display(list);
}
}
selectSort(list);
display(list);