November 6

Selection sort algoritm


Selection search algoritmi -> arrayni 0-elementidan boshlab oxirgi elementiga qarab eng kichik yoki eng katta sonni qidirish va indexini almashtirish orqali tartiblaydi.Masalan 1 elementni oladi va qolgan elementlar ichidan eng kichik bo'lgan sonni qidiradi va indexini o'zgartiradi.Misol uchun: [5,19,33,43,19,34,1,43] array bo'lsa 5 ni oladi va barcha elementlar ichidan eng kichigini qidiradi va bu arrayda eng kichigi 1 bo'lgani uchun elementlar o'rni almashtiriladi => [1,19,33,43,19,34,5,43].Keyin pointer 1 indexdagi elementga o'tkaziladi va yana 1 indexdagi elementdan keyingi barcha elementlar ichidan eng kichigini qaytadi va natija: [1,5,33,43,19,34,19,43].Bu algoritmning ishlash tezligi BO(n^2) ga teng hisoblanadi.

Bu sortlash algoritmiga misol tariqasida Leetcode dagi 912 sonli masalani ko'ramiz.
Bu masala bizning yechim uchun mos emas chunki bizning Selection sort algoritmi BO(n^2) ishlatadi bizdan esa BO(nlog(n)) kutilgan lekin selection sort uchun masala topolmaganim uchun shu masala ustida ishlaymiz.

var sortArray = function(nums){
  for(let i = 0;i < nums.length - 1; i++){
    let minNum = i
      for(let j = i +1; j < nums.length;j++){
         if(nums[j] < nums[minNum]){
            minNum = j
         }
      }
      if(minNum != i){
        let temp = nums[i]
        nums[i] = nums[minNum]
        nums[minNum] = temp
      }
  }
  return nums
}