Selection Sort
Last updated
Was this helpful?
Last updated
Was this helpful?
Selection sort
- oddiy va samarali tartiblash algoritmi boʻlib, roʻyxatning tartiblanmagan qismidan eng kichik (yoki eng katta) elementni qayta-qayta tanlab, uni roʻyxatning tartiblangan qismiga koʻchirish orqali ishlaydi.
Algoritm ro'yxatning tartiblanmagan qismidan eng kichik (yoki eng katta) elementni qayta-qayta tanlaydi va uni tartiblanmagan qismning birinchi elementi bilan almashtiradi. Bu jarayon qolgan saralanmagan qism uchun butun ro'yxat saralanmaguncha takrorlanadi.
Misol sifatida quyidagi massivni ko'rib chiqamiz: arr[] = {64, 25, 12, 22, 11}
Birinchi o'tish:
Saralangan massivdagi birinchi o'rin uchun butun massiv 0 dan 4 gacha bo'lgan indeksdan ketma-ket o'tkaziladi. Hozirda 64
saqlanadigan birinchi pozitsiya, butun massivni aylanib o'tgandan so'ng, 11
eng past qiymat ekanligi ayon bo'ladi.
Shunday qilib, 64 ni 11 bilan almashtiring. Bir marta takrorlangandan so'ng, massivdagi eng kichik qiymat bo'lgan 11 tartiblangan ro'yxatning birinchi pozitsiyasida paydo bo'ladi.
Ikkinchi o'tish:
25
mavjud bo'lgan ikkinchi pozitsiya uchun massivning qolgan qismini yana ketma-ketlikda aylantiring.
Ketishdan so'ng biz 12
massivdagi ikkinchi eng past qiymat ekanligini va u massivda ikkinchi o'rinda paydo bo'lishi kerakligini aniqladik, shuning uchun bu qiymatlarni almashtiring.
Uchinchi o'tish:
Endi, uchinchi o'rin uchun, 25
mavjud bo'lgan joyda, yana massivning qolgan qismini kesib o'ting va massivdagi uchinchi eng kam qiymatni toping.
Ketish paytida 22
uchinchi eng kam qiymat bo'lib chiqdi va u massivda uchinchi o'rinda paydo bo'lishi kerak, shuning uchun 22
ni uchinchi o'rindagi element bilan almashtiring.
To'rtinchi o'tish:
Xuddi shunday, to'rtinchi pozitsiya uchun massivning qolgan qismini kesib o'ting va massivdagi to'rtinchi eng kichik elementni toping.
25
4-eng past qiymat bo'lgani uchun u to'rtinchi o'rinni egallaydi.
Beshinchi o'tish:
Nihoyat, massivda mavjud bo'lgan eng katta qiymat avtomatik ravishda massivning oxirgi pozitsiyasiga joylashtiriladi
Olingan massiv tartiblangan massivdir.
Selection sort vaqt murakkabligi O(N^2)
ga teng, chunki ikkita ichki oʻrnatilgan tsikl mavjud:
Massiv elementini birma-bir tanlash uchun bitta tsikl = O(N)
Ushbu elementni boshqa massiv elementi bilan solishtirish uchun yana bir tsikl = O(N)
Shuning uchun umumiy murakkablik = O(N) * O(N) = O(N*N) = O(N^2)
O(1)
qo'shimcha xotira sifatida faqat massivdagi ikkita qiymatni almashtirishda vaqtinchalik o'zgaruvchilar uchun ishlatiladi. Selection sort hech qachon O(N)
almashinuvidan ko'proq narsani qilmaydi va xotirani yozish qimmat bo'lganda foydali bo'lishi mumkin.
Oddiy va tushunish oson.
Kichik ma'lumotlar to'plamlari bilan yaxshi ishlaydi.
Seelction sort eng yomon va o'rtacha holatda O(n^2)
vaqt murakkabligiga ega.
Katta ma'lumotlar to'plamlarida yaxshi ishlamaydi.
Teng kalitli elementlarning nisbiy tartibini saqlamaydi, bu barqaror emasligini anglatadi.
Source: