2-tajriba ishi. Ixtiyoriy dasturlash tilida saralash algoritmlari dasturini yozish. Ishdan maqsad


Download 11.05 Kb.
Sana05.01.2022
Hajmi11.05 Kb.
#228548
Bog'liq
DTTL. 2-tajriba ishi


2-tajriba ishi. Ixtiyoriy dasturlash tilida saralash algoritmlari dasturini yozish.

Ishdan maqsad: Saralash algoritmlari dasturini yozish ko’nikmasiga ega bo’lish.
Misol: Talabalar ism-sharifi va tartib raqamidan iborat jadvalni quicksort algoritmi bilan saralang va nechta o’rinlashtirish amalga oshirilganini aniqlang.
Dastur kodi

#include



#include

using namespace std;

struct table{

int t;

string FIO;};

int q=0;

void qs(table *a,int first,int last){

int i = first, j = last;table 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]);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<<"n=";cin>>n;

table talaba[n];

for(int i=0;i

talaba[i].t=i+1;

cin>>talaba[i].FIO;

}

qs(talaba,0,n-1);

for(int i=0;i

cout<

cout<<"quicksort algoritmi "<

}
Dastur natijasi:

talabalar sonini kiriting=5

5 ta talabalar FIO sini kiriting

Farhod

Asror

Sobir

Bobur

Vali

| 2 | Asror |

| 4 | Bobur |

| 1 | Farhod |

| 3 | Sobir |

| 5 | Vali |
Variantlar: Berilgan variantlar asosida ixtiyoriy dasturlash tilida saralashni amalga oshiring.

  1. “Lada” rusumli mashinalarning raqamlarini o’sish tartibida saralang.

  2. O’tgan yildan beri ta’mirlanmagan mashinalarni ularning egalarining ismlari bo’yicha alifbo tartibida joylashtiring.

  3. Keyingi oyda ta’mirlanishi lozim bo’lgan mashinalarni oxirgi marta ta’mirlanganlik sanasi bo’yicha o’sish tartibida keltiring.

  4. “Lada” rusumli mashinalarning raqamlarini kamayish tartibida saralang.

  5. O’tgan yildan beri ta’mirlanmagan mashinalarni ularning egalarining yoshi bo’yicha o’sish tartibida joylashtiring.

  6. Oldin ta’mir qilinmagan mashinalarni ta’mirdan chiqish sanasi bo’yicha kamayish tartibida saralang.

  7. “Bugatti” markasidagi mashinalarni raqamlari bo’yicha o’sish tartibida saralang.

  8. “Bugatti” markasidagi mashina egalarining familyasini alifbo tartibida joylashtiring.

  9. Boshqalaridan oldinroq ta’mirlanadigan mashinalarni ularning markasi bo’yicha alifbo tartibida saralang.

  10. “Ferrari” markasidagi mashina egalarining yoshi bo’yicha kamayish tartibida saralang.

Quicksort sarlash usulidan foydalanib, berilgan ma’lumotlar saralansin:

  1. Elementlar soni N=100 ga teng bo’lgan massivning eng katta elementini ekranga chiqarish.

  2. Elementlar soni N=200 ga teng bo’lgan massivning eng kichik elementini ekranga chiqarish.

  3. Elementlar soni N=300 ga teng bo’lgan ixtiyoriy massivni kamayish tartibida joylashtiring.

  4. Elementlar soni N=400 ga teng bo’lgan ixtiyoriy massivni o’sish tartibida joylashtiring.

  5. Elementlar soni N=500 ga teng bo’lgan massivning eng katta va eng kichik elementini ekranga chiqarish.

N ta talabadan iborat guruh tuzilsin. Quyidagi ma’lumotlar berilgan: F.I.SH., tug’ilgan yili, jinsi, turar joyi (yotoqxona yoki kvartira). Berilgan variant bo’yicha ma’lumotlarni saralang:

  1. Talabalarning yoshi bo’yicha o’sish tartibida.

  2. Talabalarning turar joyi bo’yicha.

  3. Talabalar orasidan faqat qizlarning ismi alifbo tartibida.

  4. Talabalar orasidan faqat yigitlarning familiyasi alifbo tartibida.

  5. Yotoqxonada turadigan talabalarning yoshi bo’yicha kamayish tartibida.

19)#include

#include

using namespace std;

int main()

{

int i, j, tot;



char nameAll[50][20], nameOne[20];

cout<<"How many String to Enter (Max.50) ? ";

cin>>tot;

cout<<"Enter "<

for(i=0; i

cin>>nameAll[i];

for(i=1; i

{

for(j=1; j

{

if(strcmp(nameAll[j-1], nameAll[j])>0)

{

strcpy(nameOne, nameAll[j-1]);



strcpy(nameAll[j-1], nameAll[j]);

strcpy(nameAll[j], nameOne);

}

}

}



cout<<"\nStrings (Names) in Alphabetical order:\n";

for(i=0; i

cout<

cout<

return 0;

}

Download 11.05 Kb.

Do'stlaringiz bilan baham:




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