O(k*n*n)=>O(n*n)
Процесс выполнения
есть массив не упорядоченных элементов
- мы в цикле находим минимальный элемент
- меняем местами найденный минимальный элемент с первым элементом
- опять ищем минимальный элемент и меняем уже со вторым элементом и так далее пока не будет отсортирован массив
const arr=[1,4,5,8,51,2,7,5,5,2,11]//[0,1,1,2,3....]
let cnt=0;
function selectionSort(arr){
for (let i = 0; i < arr.length; i++) {
let indexMin = i
for (let j=i+1; j < arr.length; j++){
if (arr[i] < arr[indexMin]){
indexMin=j
}
}
let tmp = arr[i];
arr[i]=arr[indexMin]
arr[indexMin]=tmp
}
}
console.log(selectionSort(arr))
console.log(arr.length)//))O(k*n*n)
console.log('count = ', count)