上代码
let data = [156,141,111,94,88,61,35];
let findSmallest = function(arr) { // 找出数组中最大的值
let smallest = arr[0]; // 存储最大的值
let smallest_index = 0; // 最大值的索引
for(let i = 0; i < arr.length; i++ ) {
if(smallest < arr[i]){
smallest = arr[i]
smallest_index = i
}
}
return smallest_index
}
let selectionStot = function (arr) { // 返回排序好的数组
let newArr = [];
let index = arr.length
for(let i = 0; i < index; i++) {
console.log(i)
let smallest = findSmallest(arr)
newArr.push(arr[smallest])
arr.splice(smallest,1)
}
return newArr
}
console.log(selectionStot(data))
书上是Python 代码 转换成了js 但是这样怪怪的
改成一个
let data = [156, 141, 111, 94, 88, 61, 35];
let findSmallest = function(arr) {
let smallest; // 存储最大的值
for (let i = 0; i < arr.length; i++) {
//外层循环一次,就拿arr[i] 和 内层循环arr.legend次的 arr[j] 做对比
for (let j = i; j < arr.length; j++) {
if (arr[i] < arr[j]) {
//如果arr[j]大就把此时的值赋值给最大值变量smallest
smallest = arr[j];
arr[j] = arr[i];
arr[i] = smallest;
}
}
}
return arr
}
console.log(findSmallest(data))
空间复杂度 O(n²)