原理:
选择排序是一种原址比较算法,大致思路是在第一轮迭代中找到数据结构中的最小值并将其放置在第一位,第二轮迭代中找到第二小的值并将其放在第二位,以此类推,与冒泡排序一样,都含有嵌套的两个循环,这导致了二次方的复杂度。
复杂度:
时间复杂度为O(n²);
javaScript:
function selectSort(arr, length){
let indexMin;
for(let i=0; i<length-1;i++){
indexMin = i;
for(let j = i+1; j<length;j++){
if(arr[indexMin] > arr[j]){
indexMin = j;
}
}
if(i != indexMin){
let changeA = arr[i];
arr[i] = arr[indexMin];
arr[indexMin] = changeA;
}
}
return arr;
}
function createArr(size){
results = [];
for(let i=0; i< size; i++){
results[i] = Math.floor(Math.random()*100);
}
return results;
}
let testArr = createArr(10);
console.log(testArr);
let testResults = selectSort(testArr, testArr.length);
console.log(testResults);