Ma’lumotlar tuzilmasi va algoritmlar fanining maqsad va vazifasini izohlab bering



Yüklə 1,56 Mb.
səhifə12/32
tarix05.10.2023
ölçüsü1,56 Mb.
#152400
1   ...   8   9   10   11   12   13   14   15   ...   32
MTA oraliq javoblai

Qat’iy saralash usullari

  • to’g’ridan-to’g’ri qo’yish usuli;

  • to’g’ridan-to’g’ri tanlash usuli;

  • to’g’ridan-to’g’ri almashtirish usuli.


29. Har bir saralash usullari: to’g’ridan to’g’ri qo’yish, to’g’ridan-to’g’ri tanlash va to’g’ridan-to’g’ri almashtirish usullarini tushuntirib bering.

  • Bu usulda elementlar xayolan oldindan tayyorlangan ketma-ketlik (a1,...,ai-1) va boshlang’ich ketma-ketliklarga ajratib olinadi.

  • i=2 dan boshlab har bir qadamda i bir birlikka oshadi, boshlang’ich ketma-ketlikda i-element chiqarib tashlanadi va tayyor ketma-ketlikka joylashtiriladi. Bunda u kerakli joyga qo’yiladi.

  • To’g’ridan-to’g’ri qo’yish usuli algoritmi (C++ tilida)

void sort_insertion (key a[], int n)
{ key x;
int i, j;
for (i=1; i x=a[i];
for (j=i-1; (j>=0)&&(x a[j+1]=a[j];
a[j+1]=x; }
}


30. Sheyker usulida saralash algoritmining asosiy g’oyasi va undan foydalanishag doir misol keltiring.
Sheyker usulida saralash algoritmi

  • Bu algoritmning asosiy g’oyasi shundaki, bunda saralash “to’lqinsimon” tarzda amalga oshiriladi.

  • Shuning uchun ham dastur boshida massivda chapdan o’ngga, keyin o’ngdan chapga o’tish orqali saralaydi. Ya’ni, chapga o’tilganda o’ng tomonga katta sonlarni, o’ngdan o’tganda esa, chap tomonga kichik sonlarni terib chiqadi.

  • Agar saralash, tashqi xotirada amalga oshirilayotgan bo’lsa, elementning kaliti katta hajmdagi ma’lumotlar bilan bog’liq bo’lganda, o’rin almashtirishlar soni juda ko’p vaqtni oladi va protsessorga og’ir yuklama tushadi.

Sheyker algoritmi ushbu almashtirishlar sonini kamaytiradi, ya’ni quyidagicha ishlaydi:

    • 1. Birinchi qadamda barcha elementlar minimum va maksimumga ajratib olinadi.

    • 2. Minimal element massiv boshiga, maksimal element esa massiv oxiriga mos ravishda joylashtiriladi.

    • 3. Algoritm qolgan elementlar qismmassivida ham ushbu amalni takrorlaydi.

  • { int trash=0; bool f=true;

  • for (int i=1; (i<=col) && (f=true) ; i++)

  • { f=false; // chapdan o’ngga o’tish

  • for (int j=i; j<=col-i; j++)

  • { if (array [j]>array [j+1])

  • { trash=array[j]; array [j]=array [j+1];

  • array [j+1]=trash; f=true; } }

  • // o’ngdan chapga o’tish

  • for (int j=col-i-1; j>i ; j--) {

  • if (array [j]

  • array [j-1]=trash; f=true; } } } }



Yüklə 1,56 Mb.

Dostları ilə paylaş:
1   ...   8   9   10   11   12   13   14   15   ...   32




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin