let testArr = [5, 17, 1, 33, 6, 20];
document.write(testArr + "<br/>");
/*
思路:
预备:设置新的空数组用于存放排序好的元素;设置2个变量分别临时保存当前遍历到的最小元素与其下标
(两个变量初始化设定为arr[0]与0)
首先从头开始遍历数组,找到原始数组中的最小元素,push到预备的新数组里,然后从原始数组中删除该最小元素;
同时重设两个临时变量,开始第二轮遍历
*/
function selectionSort(arr) {
let resultArr = [];
let minEl = arr[0];
let minElIdx = 0;
let originLength = arr.length;
for (let j = 0; j < originLength; j++) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] < minEl) {
minEl = arr[i];
minElIdx = i;
}
}
resultArr.push(minEl);
arr.splice(minElIdx, 1);
minEl = arr[0];
minElIdx = 0;
}
return resultArr;
}
document.write(selectionSort(testArr));
console