基本思想:遍历数组,每次遍历完可以找到数组剩下范围的最大(或最小)数,将其放到自己对应的位置后缩小遍历范围,n次遍历以后,所有数都找到自己的位置(n指数组长度)
function chooseSort(arr){
let length = arr.length;
for(let i = 0; i < length; i++){
let max = arr[0]; //最大数的值
let index = 0; //最大数的下标
for(let j = 1; j < length - i; j++){
if (arr[j] > max) { //比较数是否比已知最大数大
max = arr[j];
index = j;
}
}
if(max > arr[length-i-1]){ //将最大数与占有其位置的数换位
arr[index] = arr[length-i-1];
arr[length-i-1] = max;
}
}
return arr;
}
时间复杂度:O(n2);