Massiv elementlarini saralash usullarining ichida quicksort




Download 0,98 Mb.
Pdf ko'rish
bet8/11
Sana29.05.2024
Hajmi0,98 Mb.
#256363
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
Tez saralash (Quick sort)


-1) - qadamda 
n
ta element tartiblanganda 
n
- element dastlabki 
n
tasi bilan 
taqqoslanadi. Bizning maqsad ham shu oxirgi qadamda bajarilgan vazifa ya’ni 
n
ta 
elementni saralashdan iborat edi. Buni osonroq tushunish uchun quyidagi misolni 
keltiramiz: 
6
7
3
8
4
6
7
3
8
4
(1) 
6
7
3
8
4
(2) 
3
6
7
8
4
3
6
7
8
4
(3) 
3
4
6
8
7
3
4
6
8
7
(4) 
3
4
6
8
7


14
Endi esa ushbu saralash algoritmining dasturini keltiramiz: 
#include  
using namespace std; 
int main() 
{ int *a, i, n, j, m; 
cin >> n; 
a=new int [n]; 
for(i=0; icin>>a[i]; 
for(i=1; i{ j=i; 
while(j>0&&(a[j]{ m=a[j]; 
a[j]=a[j-1]; 
a[j-1]=m; 
j--; } } 
for(i=0; icout << a[i] << " "; 
delete []a; 
return 0; } 
Selection sort alagaritmi – bu tanlash algoritmidir. Tanlash algoritmi saralash 
algoritmlarining eng oddiy saralash usuli hisoblanadi. Ushbu saralash algoritmi 
ro’yhatning ikki qismga bo’linadigan qismi, chap tomonning oxiridagi qismi va o’ng 
tomonning ajralmas qismiga bo’linadigan joylarda taqqoslashga asoslangan saralash 
algoritmidir. Dastlabki holda, tartiblangan qism bo’sh va sarlavha qilinmagan qism 
butun ro’yhat hisoblanadi. Eng kichik eliment unsorted qatordan tanlanadi va eng 
chap element bilan almashtiriladi va bu element tartiblangan qatorning bir qismiga 
aylanadi. Ushbu jarayonni bajarish tartibsiz qator qatorni o’nga bir element bilan 
harakat qilishni davom ettiradi. Uishbu saralash algaritmi juda katta malumotlar 


15
majmui uchun mos emas, chunki urtacha va eng yamon vaziyat murakkabligi O(n
2

, bu yerda n saralaniyotgan massivning elementlar sonini bildiradi. 
Quyida tanlash asosida saralash algoritmining dastur matnini 
C++ 
dasturlash 
tilida keltirib o’tamiz: 
#include  
using namespace std; 
int main() 
{ int *a, i, j, buf, n, t; 
cin>>n; 
a=new int[n]; 
for(i=0; icin>>a[i]; 
for(i=0; i; i++) { 
t=i; 
for(j=i+1; jif(a[t]>a[j]) { 
t=j; 


buf=a[t]; 
a[t]=a[i]; 
a[i]=buf; 

for(i=0; icout << a[i] << " "; 
delete []a; 
return 0; } 


16
Dastur izohi: dastur 
C++ 
dasturlash tilining kompyuterlar uchun mo’ljallangan 
versiyalarida ishga tushirilgach hosil bolgan qora fondagi doskaga dastlab massiv 
elementlari soni n so’ngra n ta massiv elementini kiritamiz. Massivning birinchi 
elementi bilan qolgan barcha elementlarni taqqoslab chiqamiz. Agarda massivning 
birinchi elementi qolgan barcha elementlarni ixtiyoriysidan katta bo’lsa u holda bu 
elementlar urni almashadi. Kiyingi qadamda ikkinchi element bilan undan kiyin 
turgan elementlarni taqqoslaymiz. Kiyingi qadamda uchinchi element va hakozo 
oxirgi qadamda n-1 birinchi element bilan n-element taqqoslanadi. Har qadamda 
taqqoslash sharti bajarilsa taqqoslangan elementlar o’rni almashadi va bu jarayon 
taqqoslash sharti bajarilmay qolguncha davom etadi
Dastur natijasi quyidagicha bo’ladi: 

Download 0,98 Mb.
1   2   3   4   5   6   7   8   9   10   11




Download 0,98 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Massiv elementlarini saralash usullarining ichida quicksort

Download 0,98 Mb.
Pdf ko'rish