Рубрики
Алгоритмы Массивы "cортировка"

Массивы «cортировка выбора»

O(k*n*n)=>O(n*n)

Процесс выполнения

есть массив не упорядоченных элементов

  1. мы в цикле находим минимальный элемент
  2. меняем местами найденный минимальный элемент с первым элементом
  3. опять ищем минимальный элемент и меняем уже со вторым элементом и так далее пока не будет отсортирован массив
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)