Kemshilikleri:
1) Úlken dızbeklerdi uzaq qayta isleydi;
2) Hár qanday jaǵdayda da ılaqtırıwlar sanı kemeymeydi.
Shar tárizli usıldı jaqsılaw.
1) Eger dızbekde ılaqtırıwlar tekǵana joqarıdan tómenge, bálkim bir waqttıń ózinde tómenden joqarıǵa bolsa, ol halda jeńil elementler joqarıǵa júzip shıǵadı.
2) Dızbekde biykar ılaqtırıwda islew ushın, sırtqı ciklda dızbek saralanģanlıģını tekseriwshi belgi qoyıw kerek.
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; }
Orinlashtirish hám salıstırıwlashlar sanı: (n* log ( n )).
for (int i=0;ifor (int j=i+1;jif (a[i] > a[j])
{ int k = a[j]; a[j]= a[i];a[i]= k; }
Jumistin maqseti:
Maǵlıwmatlardıń dúzilgen hám payda etiletug’in túrlerin úyreniw hám olardı izertlew.
Qoyilg’an ma’sele: C++ tilinde pútin, haqıyqıy, belgili, logikalıq kategoriyadaǵı maǵlıwmatlardı járiyalaw, standart bolmaǵan kategoriyalardı jaratıw hám olarǵa tiyisli mısallardıń programmasın islep shıǵıw.
Jumis ta'rtibi:
Tájiriybe jumısı teoriyalıq maǵlıwmatların úyreniw;
Berilgen tapsırmanıń algoritmın islep shıǵıw;
C++ programmalastırıw ortalıǵında programmanı jaratıw;
Nátiyjelerdi tekseriw;
Esabattı tayarlaw hám tapsırıw.
Bul algoritm “bo’lıp al hám iyelik et” printspınıń ayqın mısalı bolıp tabılad.Bul algotirm rekursiv bolıp, ortasha N*log2N ta salıstırıw nátiyjesinde saralaydı. Algoritm berilgen massivti saralaw ushın onı 2 ge bolıp aladı. Bolıp alıw ushın qálegen elementti tańlap odan 2 bólekke ajratıladı. Biraq ortadaǵı elementti tańlap, massivtiń teń yarımınan 2 ge ajratqan maqul. Saylanǵan gilt elementke salıstırǵanda shepdegi hám ońındaǵı hár bir element salıstırıladı. Gilt elementten kishiler shepke,úlkenler ońǵa ótkeriledi (6. 3-súwret). Endi massivtiń hár eki tárepinde tap joqarıdaǵı ámeller tákirarlanadı. Yaǵnıy bul aralıqlardıń ortasındaǵı elementler gilt sıpatında alınadı hám t.b.
Misal ushin suwretdegi massivti saralaw algoritmini ko’rip shig’amiz.
1. Araliq sipatinda 0 den n-1 ge shekem bolg’an massivtiń hamme elementlarin alamiz.
2. Araliq ortasindag’i gilt elementti tańlaymiz, yag’niy
key=(+)/2, i=,
j=.
3-suwret. Quicksort algoritminde orinlastiriw
3. Shepdegi i-elementti key menen salistiramiz. Eger key kittay bolsa, keyingi qa’demge o’temiz. Bolmasa i++ ham usi qademdi takrarlaymiz.
4. Ońgdag’i j-element menen key salistiriladi. Eger key úlken bolsa, keyingi qa’demge o’temiz, bolmasa j-- ham usi qademdi takrarlaymiz.
5. i- ham j-elementlerinin orni almastiriladi. Eger i<=j bolsa, 3-qademge o’tiledi.
Birinshi o’tiwden keyin tańlang’an element o’ziniń jayina kelib jaylasadi.
6. Endi sol ko’rilip atirg’an araliqda key giltiniń shep ta’repinde elementler bar bolsa, olar ustinde joqaridag’i ámellerdi islew kerek, yag’niy ko’riletug’in araliq 0 den key-1 geshe deb belgilenedi ham 2-qa’demge o’tiledi. Bolmasa keyingi qa’demge o’tiledi.
7. Endi sol ko’rilip atirgan araliqda key gilttiń oń ta’repinde elementler bar bolsa, olar ustinde joqaridag’i ámellerdi islew kerek, yag’niy ko’riletug’in araliq key+1 dan n-1 geshe deb belgilenedi ham 2-qademge o’tiledi. Bolmasa algoritm tamam boladi.
Sol algoritmge misal ko’rib shig’amiz.
Misal: Studentler ati-familyasi ham tartib saninan ibarat kesteni quicksort algoritmi menen saralań ham neshe orinlaw ámelge asirilganin aniqlań.
Do'stlaringiz bilan baham: |