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; } } } }
31. Saralash usullarining qiyosiy tahlili: taqqoslashlar va o’rin almashtirishar soni qanday aniqlanadi?
To’g’ridan-to’g’ri tanlash algoritmning samaradorligi
Taqqoslashlar soni:
O’rin almashtirishlar soni:
Ushbu usulni g’oyasi quyidagicha:
marta massivda quyidan yuqoriga qarab yurib kalitlar jufti-jufti bilan taqqoslanadi.
Agar pastki kalit qiymati, undan yuqoridagi juftining qiymatidan kichik bo’lsa, u holda ular o’rni almashtiriladi va h.k.
32. To’g’ridan to’g’ri qo’yish usuli algoritmini yozing va uni ishlashini 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.
Dostları ilə paylaş: |