5-amaliy mashg’uloti. Saralashning qat’iy va yaxshilangan usullari va ularning qo’llanilishi


Download 140.16 Kb.
Sana17.02.2023
Hajmi140.16 Kb.
#1208292

5-amaliy mashg’uloti. Saralashning qat’iy va yaxshilangan usullari va ularning qo’llanilishi.

Saralashning ikkita turi mavjud: ichki va tashqi:


-ichki saralash - operativ xotiradagi saralash;
- tashqi saralash – tashqi xotirada saralash.
Agar saralanayotgan yozuvlar xotirada katta hajmni egallasa, u holda ularni almashtirishlar katta sarf (vaqt va xotira ma‟nosida) talab qiladi. Ushbu sarfni kamaytirish maqsadida, saralash kalitlar adresi jadvalida amalga oshiriladi. Bunda faqatgina ma‟lumot ko’rsatkichlari almashtirilib, massiv o’z joyida qoladi. Bu usul adreslar jadvalini saralash usuli deyiladi. Saralanayotganda bir xil kalitlar uchrashi mumkin, bu holda saralangandan keyin bir xil kalitlilar boshlang’ich tartibda qanday joylashgan bo’lsa, shu tartibda qoldirilishi maqsadga muvofiq bo’ladi (Bir xil kalitlilar o’zlariga nisbatan). Bunday usulga turg’un saralash deyiladi.
Topshiriq
8. o’tkan yilidan beri taminlanmagan mashinani ularning egasining simi bo’yicha joylashtiring.


#include
#include
using namespace std;
struct Car_fixed{
int t;
string Car_name;};
int q=0;
void qs(Car_fixed *a,int first,int last){
int i = first, j = last;
Car_fixed x =a[(first + last) / 2];
do {
while (a[i].Car_name < x.Car_name) i++;
while (a[j].Car_name > x.Car_name) j--;
if(i <= j) {
if (i < j){ swap(a[i], a[j]);q++;}
i++;
j--;
}
} while (i <= j);
if (i < last)
qs(a,i,last);
if (first < j)
qs(a,first,j);
}
int main(int args, char *argv[])


{ int n;cout<<"berilgan mashina sonini kiriting n=";cin>>n;
cout<<"berilgan mashina mashinani kiriting"<
Car_fixed Cars[n];
for(int i=0;i
Cars[i].t=i+1;
cin>>Cars[i].Car_name;
}
qs(Cars,0,n-1);
for(int i=0;i
cout<
cout<<"quicksort algoritmi "<
system("PAUSE");
}
Dastur natijasi:





Download 140.16 Kb.

Do'stlaringiz bilan baham:




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