AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Multimediya texnologiyalari kafedrasi
Ma’lumotlar tuzilmasi fanidan
AMALIY TOPSHIRIQ №3
Mavzu: Saralash usul va algoritmlarini tadqiq qilish. Saralashga doir misollarni hal qilish.
Bajardi: 219/21-guruh talabasi
Fayzullayev Husniddin.
Tekshirdi: Bo’riyev Yusuf.
Ma‟lumotlarni kompyuterda qayta ishlashda elementning informatsion maydoni va uning mashina xotirasida joylashishini bilish zarur. Shu maqsadda ma‟lumotlarni saralash amalga oshiriladi. Demak, saralash – bu ma‟lumotlarni kalitlari bo„yicha doimiy ko„rinishda mashina xotirasida joylashtirishdan iborat. Bu yerda doimiylik ma‟lumotlarni massivda kalitlari bo„yicha o„sishi tartibida berilishi tushuniladi.
Ma‟lumotlarga qayta ishlov berilayotganda ma‟lumotning informatsion maydonini hamda uning mashinada joylashishini (adresini) bilish zarur.
Saralashning ikkita turi mavjud: ichki va tashqi:
-ichki saralash - operativ xotiradagi saralash;
- tashqi saralash – tashqi xotirada saralash.
O‘tgan yildan beri ta’mirlanmagan mashinalarni ularning egalari ismlari bo‘yicha alifbo tartibida joylashtiring.
#include
#include
using namespace std;
struct jadval{
int nomeri;
string FIO;
};
int count=0;
void saralash(jadval *a,int first,int last){
int i = first, j = last;
jadval x =a[(first + last) / 2];
do {
while (a[i].FIO < x.FIO) i++;
while (a[j].FIO > x.FIO) j--;
if(i <= j) {
if (i < j){ swap(a[i], a[j]);count++;}
i++;
j--;
}
} while (i <= j);
if (i < last)
saralash(a,i,last);
if (first < j)
saralash(a,first,j);
}
int main() {
cout<<"O'tgan yildan beri ta'mirlanmagan mashinalar Egalarining ismlari bo'yicha saralash bajariladi :\n";
int n;cout<<"Necha kishi : ";cin>>n;
jadval egalar[n];
for(int i=0;i
egalar[i].nomeri=i+1;
cout<
cin>>egalar[i].FIO;
}
saralash(egalar,0,n-1);
cout<
for(int i=0;i
cout<
return 0;
}
Dostları ilə paylaş: |