197-misol. Endi oldimizga qo’yilgan maqsad shundan iboratki, biz “o’rta” dasturini shunday o’zgartirishimiz kerakki, u nafaqat “o’rta” elementni aniqlasin, balki shu usuldan foydalangan holda sonli massivni tartiblasin.
Masalani tuzish g’oyasi quyidagicha. Birinchi bosqich - bu butun massivning “o’rta” elementini topish (biz “o’rta” elementni aniqlash jarayonini amalga oshirgan sonli massivga yana murojaat qilamiz).
Shunday qilib, “o’rta” element topildi, u 45 ga teng va u 7-o’rinda joylashgan.
36 33 12 18 15 26 45 67 48 89
1 2 3 4 5 6 7 8 9 10
Bundan keyin, yana “o’rta” elementni aniqlash prosedurasidan foydalanamiz, lekin u hozircha 1-chidan 7-gacha (7-elementning o’zi hisobga olinmaydi) bo’lgan 7-nomerdan chap tomonda joylashgan massivning chap qismi uchun ishlatilgan.
36 33 12 18 15 26
1 2 3 4 5 6
36 va 26 ni 36 < 26 shart bo’yicha solishtiramiz. Shart bajarilmayapti, demak, 36 va 26 elementlarning o’rinlari almashtiriladi. Massivning bu qismi quyidagi ko’rinishga kiradi:
26 33 12 18 15 36
1 2 3 4 5 6
Bu yerda 36 "o’rta" element bo’lib qoldi, chunki unga nisbatan chap tomonda 36 dan kichik bo’lgan elementlar joylashgan.
36 ga nisbatan chap tomondagi massiv qismi bilan jarayonni davom ettiramiz (har doim chapga harakatlanamiz):
26 33 12 18 15 36
1 2 3 4 5 6
33 va 15 (33 < 15) ni solishtiramiz, shart bajarilmayapti, bu elementlarning o’rnini almashtirib quyidagiga ega bo’lamiz:
26 15 12 18 33 36
1 2 3 4 5 6
Yana "o’rta" element 33 5-o’rinda topildi. 1 dan 4 gacha bo’lgan 4 ta element uchun “o’rtasini” topish jarayonini boshlaymiz.
26 15 12 18 33 36
1 2 3 4 5 6
26 18 bilan solishtiriladi (26 < 18). Shart bajarilmayapti, elementlarning o’rnilari almashadi va h.k. Har doim chap qismdagi “o’rta” elementlar topiladi.
Birinchi elementga yetib kelganimizdan so’ng, chapga siljish jarayoni to’xtatiladi va asta-sekinlik bilan o’ngga siljish boshlanadi, ya’ni massivning o’ng qismlari uchun “o’rta” elementlar topiladi.
Natijada massiv tartiblangan holatga kelib qoladi.
Bu jarayon quyidagi prosedura yordamida amalga oshiriladi:
Do'stlaringiz bilan baham: |