2-amaliy mashg’ulot Ishdan maqsad


“Pufaksimon” usulni yaxshilash


Download 116.2 Kb.
bet6/9
Sana01.11.2023
Hajmi116.2 Kb.
#1738512
1   2   3   4   5   6   7   8   9
Bog'liq
2-amaliy mashg\'ulot MTva A

“Pufaksimon” usulni yaxshilash


  1. Agar massivda o‘tishlar nafaqat yuqoridan pastga, balki bir vaqtning

o‘zida pastdan yuqoriga ham bo‘lsa, u holda “yengil” elementlar “yuqoriga suzib” chiqadi va “og‘ir” elementlar esa “cho‘kadi”.

  1. Massivda “bekor” o‘tishni yo‘q qilish uchun, tashqi siklda massiv saralanganligini tekshiruvchi belgi qo‘yish lozim.

for (int i=0;i
for (int j=n-1;j>i;j--)
if (a[j] < a[j - 1]){
int x= a[j - 1];
a[j - 1] = a[j];
a[j] = x;
}
O‘rinlashtirish va taqqoslashlar soni: (n* log( n )).



Ishni bajarishga oid namuna
1. Talabalar ma’lumotlaridan – FIO va adresdan iborat jadval berilgan. Binar qidiruvdan foydalanib TTJ da yashaydigan talabalar ro‘yhatini hosil qiling.
Algoritm

  1. Jadvalga n ta talaba FIO va adreslarini kiritamiz.

  2. Binar qidiruvni jadvalning birorta maydonida amalga oshirish uchun jadvalni shu maydoni bo‘yicha tartiblab olish kerak. Shuning uchun masalaning qo‘yilishida adresi TTJ bo‘lgan talabalarni topish kerakligi sababli jadval ma’lumotlarini adres maydoni bo‘yicha saralab olamiz. Masalani yechishda to‘g‘ridan-to‘g‘ri tanlash orqali saralashdan foydalanilgan.

  3. key kalitga mos elementni izlash chegaralarini aniqlab olamiz. Dastlab u [0,n] oralig‘ida, ya’ni low=0,hi=n.

  4. Agar low<=hi bo‘lsa, oraliq o‘rtasini hisoblaymiz. mid=(low+hi)/2

  5. Agar mid o‘rnida turgan talaba adresi TTJ bo‘lsa, element topildi, search=mid va 7-qadamga o‘tiladi, aks holda keyingi qadamga o‘tiladi.

  6. Agar “TTJ” so‘zi alifbo bo‘yicha mid o‘rnida turgan talaba adresi qiymatidan kichik bo‘lsa, izlash quyi chegarasi o‘zgaradi, ya’ni mid o‘rnida turgan elementdan bitta oldingi elementgacha olinadi, ya’ni hi=mid-1. Aks holda, yuqori chegara o‘zgaradi – mid dan keyingi elementdan to oxirgi elementlar oralig‘i olinadi, ya’ni low=mid+1. 4-qadamga o‘tiladi.

  7. Agar topilgan elementdan oldin turgan elementning (mid-1) ham adres maydoni TTJ bo‘lsa, search--, ya’ni bitta oldingi elementga o‘tamiz va shu qadamni boshidan bajaramiz. Aks holda keyingi qadamga o‘tiladi.

  8. Joriy (search ko‘rsatayotgan) elementdan boshlab adresi “TTJ” ga teng bo‘lgan talaba ma’lumotlarini ekranga chiqaramiz. Agar adresi “TTJ” dan farq qiladigan talaba chiqib qolsa, algoritm tugallanadi.


Download 116.2 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling