Keling shu paytgacha o'rgangan tartiblash algoritmlarini o'zaro solishtiramiz.
Bubble Sort:
Selection Sort:
Insertion Sort:
Uchala algoritmni bir xil ma'lumotda ishlatib, farqlarni kuzating: qaysi biri ko'proq almashtirish qiladi, qaysi biri kamroq?
Uchta algoritm:
| Algoritm | G'oya | Murakkablik |
|---|---|---|
| Bubble Sort | Qo'shni elementlarni almashtirish | O(n²) |
| Selection Sort | Minimumni topib joylashtirish | O(n²) |
| Insertion Sort | To'g'ri joyga kiritish | O(n²) |
Murakkablik grafigi:
Uchala algoritmning eng yomon holati O(n²) — n oshganda ish vaqti keskin oshadi:
Grafikda ko'rinib turibdi: O(n²) algoritmlar katta ma'lumotlarda juda sekinlashadi. Shuning uchun amaliy loyihalarda Python ning sort() funksiyasi ishlatiladi — u O(n log n) murakkablikka ega.
Qaysi birini tanlash:
sort() (Timsort, O(n log n))Haqiqiy hayotda:
# Python da o'rnatilgan sort() ishlatish kerak
sonlar = [64, 25, 12, 22, 11]
sonlar.sort() # O(n log n) — hammadan tez
print(sonlar) # [11, 12, 22, 25, 64]Bu algoritmlarni o'rganishdan maqsad — algoritmik fikrlashni rivojlantirish. Keyingi darsda biz bu bilimlarimizni amaliy masala yechishda qo'llaymiz.
Tartiblash algoritmlarini tushunish
Quyidagi savollarni o'ylab ko'ring: