Labotoriya topshirig‘i sharti. N ta sondan iborat massiv berigan. Massivni QuickSort usuli bilan tartibga keltirish dasturini tuzamiz
Masalani yechish algoritmi (Quicksort saralash usuli). Dastur kodi
#include
using namespace std;
int partition(int *a,int start,int end)
{
int pivot=a[end];
int P_index=start;
int i,t;
for(i=start;i
{
if(a[i]<=pivot)
{
t=a[i];
a[i]=a[P_index];
a[P_index]=t;
P_index++;
}
}
t=a[end];
a[end]=a[P_index];
a[P_index]=t;
return P_index;
}
void Quicksort(int *a,int start,int end)
{
if(start
{
int P_index=partition(a,start,end);
Quicksort(a,start,P_index-1);
Quicksort(a,P_index+1,end);
}
}
int main()
{
int n;
cout<<"Elementlar sonnini toping: ";
cin>>n;
int a[n];
cout<<"Massiv elementlarini kiriting:\n";
for(int i=0;i
{
cin>>a[i];
}
Quicksort(a,0,n-1);
cout<<"Saralangan massiv:\n";
for(int i=0;i
{
cout<
}
system("pause");
return 0;
}
Laboratoriya ishini bajarish tartibi. Laboratoriya ishini bajarishda quyidagi tartibga amal qiling:
Guruh jurnalidagi nomerga ko‘ra o‘z variantingizni aniqlang
Masalani yechish uchun algoritm va dastur quring.
Kichik hajmdagi ma’lumotlar uchun dasturning to‘g‘ri ishlayotganligiga ishonch hosil qiling.
Bajarilgan ishlar haqida hisobot tayyorlang.
Laboratoriya topshiriqlari variantlari
Quyida har 10 ta variant uchun umumiy bo‘lgan masalaning berilishi va talab qilinayotgan saralash usuli keltirilgan. Talabalar topshiriq olib so‘ralayotgan usul bilan o‘zlari tomonidan tanlangan ixtiyoriy saralash usulining samaradorligini solishtirish dasturini tuzishlari kerak. Usullarni solishtirishda o‘rin almashtirishlar soni nazarda tutiladi.
Ta’mirlash ustaxonasida bir nechta (N ta) mashina bor. Ular to‘g‘risida quyidagi ma’lumotlarga egamiz: raqami, markasi, egasining ismi, oxirgi marta ta’mirlanganligi sanasi (kuni, oyi, yili), ta’mirdan chiqishi lozim bo‘lgan sana (kun, oy, yil).
Quicksortdan foydalanib, saralashni amalga oshirish dasturini ishlab chiqish (variantga mos ravishda):
Mashina egalarining ismlari bo‘yicha alifbo tartibida joylashtirilsin va mos ravishda ularning mashinalari haqidagi ma’lumotlar chiqarilsin.
Avtomobillarni ta’mirlash tartibi ishlab chiqilsin. Bu yerda ta’mir tugashi sanasi qaysi avtomobil uchun ertaroq bo‘lsa, shunga birinchi navbatda xizmat ko‘rsatiladi.
Oldingi ta’mir qilinganlar soni 2 ga teng bo‘lgan mashinalar raqamlari bo‘yicha kamayish tartibida joylashtirilsin.
Oldin ta’mir qilinmagan mashinalarni ta’mirdan chiqish sanasi bo‘yicha o‘sish tartibida joylashtiring.
"Mersedes" markali mashina egalarini alifbo bo‘yicha teskari tartibda joylashtiring.
Boshqalaridan oldinroq ta’mirlanadigan mashinalarni ularning markasi bo‘yicha alifbo tartibida joylashtiring (ta’mir tugatilishi sanasi 31.12.2012 dan erta).
"Nexia" markasidagi mashinalarni raqamlari bo‘yicha o‘sish tartibida joylashtiring.
O‘tgan yildan beri ta’mirlanmagan mashinalarni ularning egalari ismlari bo‘yicha alifbo tartibida joylashtiring.
Keyingi oyda ta’mirlanishi lozim bo‘lgan mashinalarni oxirgi marta ta’mirlanganlik sanasi bo‘yicha o‘sish tartibida keltiring.
"Mersedes" markasidagi mashinalarni raqamlari bo‘yicha kamayish tartibida joylashtiring.
N ta talabadan iborat guruh tuzilsin. Quyidagi ma’lumotlar berilgan: familiya, ism, tug‘ilgan yili, fanlar bo‘yicha bahosi: MTvaA, oliy matematika, fizika, dasturlash, topshirgan sessiya umumiy bali.
Mergesortdan foydalanib, saralashni amalga oshirish dasturini ishlab chiqing (variantga mos ravishda):
Talabalar familiyalarini alifbo tartibida.
Talabalarni yoshi bo‘yicha o‘sish tartibida.
Talabalarni umumiy bali bo‘yicha o‘sish tartibida.
Talabalarni birinchi imtihoni natijasi bo‘yicha o‘sish tartibida.
Talabalarni ikkinchi imtihoni natijasi bo‘yicha kamayish tartibida.
Talabalarni uchinchi imtihoni natijasi bo‘yicha o‘sish tartibida.
Talabalarni to‘rtinchi imtihoni natijasi bo‘yicha kamayish tartibida.
Talabalarni birinchi va ikkinchi imtihoni natijalari bo‘yicha o‘sish tartibida.
Talabalarni birinchi va ikkinchi imtihoni natijalari bo‘yicha kamayish tartibida.
Talabalarni umumiy bali bo‘yicha kamayish tartibida.
QuickSortdan foydalanib, saralashni amalga oshirish dasturini ishlab chiqish (variantga mos ravishda):
A massivning eng katta (eng kichik) elementini ekranga chiqarish dasturini tuzing.
A massiv elementlari qiymatlarini kamayish tartibida saralash dasturini tuzing.
A massivda elementlar berilgan. Mazkur massiv elementlaridan shunday V massiv shakllantiruvchi shunday dastur tuzingki, V massiv elementlari kamayish tartibida saralangan bo‘lsin.
Elementlari o‘sish tartibida joylashgan A sonli massiv va a soni berilgan. a ni A massivga shunday qo‘shingki, tartiblanganlik buzilmasin.
Elementlari o‘sish tartibida joylashgan A massivni, elementlari kamayish tartibida joylashgan massiv ko‘rinishida tez quruvchi dastur tuzing.
MergeSortdan foydalanib, saralashni amalga oshirish dasturini ishlab chiqish (variantga mos ravishda):
Manfiy va musbat sonlardan tashkil topgan A massiv berilgan. Barcha manfiy sonlarni chiqarib, musbatlarini o‘sish tartibda joylashtiruvchi dastur tuzing.
Berilgan A massivdan ketma-ket sonlar olib, ulardan o‘sish tartibida shakllantirilgan V massiv hosil qiluvchi dastur tuzing.
Mualliflar ro‘yhati A massiv shaklida berilgan. Mualliflarni alifbo tartibida shakllantirish va shakllangan ro‘yhatni ekranga chiqarish dasturini tuzing.
Telefon stansiyasida n ta mijoz bor. Quyidagi shaklda ro‘yhat hosil qiluvchi dastur tuzing: telefon raqami, mijoz familiyasi (telefon raqamlari o‘sish tartibida joylashadi).
A massivni uzunliklari har xil bo‘lgan n ta so‘z tashkil qiladi. So‘zlarni uzunliklari bo‘yicha o‘sish tartibida joylashtiruvchi dastur tuzing.
Do'stlaringiz bilan baham: |