Asosiy kontentga o‘tish
Informatik.uz
1-bob. Algoritmlar

Saralash algoritmlari: pufakchali saralash

Saralash ma’lumotlarni tartibga soladi va keyingi qidirishni tezlashtiradi. Pufakchali saralash g‘oyasini, uning ishlashini qadamma-qadam va nima uchun katta massivlarda sekin ekanini ko‘rib chiqamiz.

1-mavzu / 112 daq o‘qishYangilangan: 27-oktabr, 2026
Mavzular ro‘yxati (1 / 11)

Saralash — elementlarni biror qoida bo‘yicha, masalan, o‘sish yoki kamayish tartibida joylashtirish. Tartiblangan ma’lumotlarda kerakli elementni topish ancha tez bo‘ladi, ro‘yxatlarni o‘qish ham qulaylashadi. Saralashning ko‘p usullari bor; eng sodda va tushunarlisi — pufakchali saralash. Python’da massiv vazifasini ro‘yxat (list) bajaradi.

Pufakchali saralash g‘oyasi shunday: qo‘shni ikki elementni solishtiring va ular noto‘g‘ri tartibda bo‘lsa, o‘rnini almashtiring. Massiv bo‘ylab boshidan oxirigacha bir marta shunday o‘tganda eng katta element oxiriga “suzib chiqadi” — xuddi suvdagi pufakcha kabi. Keyingi o‘tishda oxirgi element endi tekshirilmaydi, chunki u o‘z joyida turibdi; shu tarzda har safar tekshiriladigan qism bittaga qisqaradi.

Massiv 5 2 4 1 bo‘lsin. 1-o‘tishdan keyin u 2 4 1 5 ga, 2-o‘tishdan keyin 2 1 4 5 ga, 3-o‘tishdan keyin 1 2 4 5 ga aylanadi. Python’da qo‘shnilarni solishtirish if a[j] > a[j + 1] bilan, almashtirish esa a[j], a[j + 1] = a[j + 1], a[j] bilan yoziladi; bu amallar ichma-ich ikkita for sikli ichida takrorlanadi. Agar biror o‘tishda birorta ham almashtirish bo‘lmasa, massiv allaqachon tartiblangan va jarayonni to‘xtatish mumkin.

n ta elementni saralash uchun taxminan n(n − 1)/2 ta solishtirish kerak, ya’ni vaqt n² ga mutanosib o‘sadi. 1000 ta element uchun bu qariyb 500 ming, 10 000 ta uchun esa qariyb 50 million solishtirish. Shuning uchun pufakchali saralash o‘rganish uchun yaxshi, katta ma’lumotlar uchun esa samarasiz. Amalda Python’ning tayyor sorted() va list.sort() funksiyalaridan foydalaniladi: ular ancha tez algoritm (Timsort) asosida ishlaydi.

Asosiy xulosalar

  • Saralash elementlarni o‘sish yoki kamayish tartibida joylashtiradi.
  • Pufakchali saralash qo‘shni elementlarni solishtirib, noto‘g‘ri tartibdagilarini almashtiradi.
  • Har bir o‘tishda eng katta element o‘z joyiga — oxirgisiga — chiqadi.
  • Almashtirish bo‘lmagan o‘tish massiv tartiblanganini bildiradi va jarayonni to‘xtatish mumkin.
  • Taxminan n(n − 1)/2 solishtirish kerak, shuning uchun usul katta massivlarda sekin.

Amaliy topshiriqlar

  1. Massiv 7 3 9 1 5 ni pufakchali saralash usuli bilan qo‘lda saralang: har bir o‘tishdan keyingi holatni yozib boring va bajarilgan solishtirishlar sonini sanang.
  2. Foydalanuvchi kiritgan sonlar ro‘yxatini o‘sish tartibida saralaydigan pufakchali saralash dasturini Python’da yozing.
  3. Dasturga almashtirish bo‘lmagan o‘tishda to‘xtash shartini qo‘shing, so‘ng saralangan va teskari tartibdagi ro‘yxatlar uchun solishtirishlar sonini taqqoslang.

Mustahkamlash savollari

O‘zingizni sinab ko‘ring: avval o‘ylab ko‘ring, keyin javobni oching.

  1. 1Pufakchali saralashda bir o‘tishdan keyin qaysi element albatta o‘z joyiga tushadi?
    Eng katta element: u massivning oxiriga chiqadi.
  2. 2Nima uchun pufakchali saralash katta massivlar uchun yaroqsiz?
    Solishtirishlar soni elementlar sonining kvadratiga mutanosib o‘sadi: 10 000 ta element uchun taxminan 50 million amal kerak.
  3. 3To‘xtash shartli (almashtirish bo‘lmasa to‘xtaydigan) usul allaqachon saralangan massivda nechta o‘tish bajaradi?
    Faqat bitta: unda hech qanday almashtirish bo‘lmagani uchun jarayon to‘xtaydi.

0 / 11 mavzu o‘tildi

Kirib belgilash
Informatika 11-sinf darsligi muqovasi
DarslikdaInformatika — 11-sinf