Selection Sort — har safar tartiblangan bo'lmagan qismdan eng kichik elementni topib, uni to'g'ri joyga qo'yadi.
G'oya:
Keling, [64, 25, 12, 22, 11] list uchun algoritmni vizual ko'raylik:
1-qadam: Butun listdan eng kichigini qidiramiz — 11 (indeks 4). Uni birinchi element 64 bilan almashtiramiz → [11, 25, 12, 22, 64]
2-qadam: Qolgan [25, 12, 22, 64] ichidan eng kichigi — 12 (indeks 2). Uni 25 bilan almashtiramiz → [11, 12, 25, 22, 64]
3-qadam: Qolgan [25, 22, 64] ichidan eng kichigi — 22 (indeks 3). Uni 25 bilan almashtiramiz → [11, 12, 22, 25, 64]
4-qadam: Qolgan [25, 64] — 25 allaqachon joyida → [11, 12, 22, 25, 64]
Python kodi:
sonlar = [64, 25, 12, 22, 11]
for i in range(len(sonlar)):
# Eng kichik elementning indeksini topish
min_idx = i
for j in range(i + 1, len(sonlar)):
if sonlar[j] < sonlar[min_idx]:
min_idx = j
# i-o'rin bilan eng kichik elementni almashtirish
sonlar[i], sonlar[min_idx] = sonlar[min_idx], sonlar[i]
print(sonlar) # [11, 12, 22, 25, 64]Keling, kodning qanday ishlashini qadam-baqadam ko'rib chiqamiz:
Selection Sort har iteratsiyada faqat bitta almashtirish qiladi — minimum elementni joyiga qo'yadi. Bubble Sort esa bir o'tishda ko'p marta almashtirishi mumkin.
Keyingi darsda biz Insertion Sort ni o'rganamiz — u kartalar o'yinidagi tartibga solish kabi ishlaydi.
Selection Sort ni amalga oshirish
Dastur yozing:
64 25 12 22 11)