Toshkent Axborot Texnologiyalar Universiteti Axborot xavfsizligi fakulteti715-20 guruh talabasi Ismoilov Feruzning ma’lumotlar tuzilmasi va algoritmlari fanidan bajargan mustaqil ishi Kriptalogiya kafedrasi Toshkent 2022 Mavzu



Download 194,2 Kb.
bet2/4
Sana01.03.2022
Hajmi194,2 Kb.
#475747
1   2   3   4
Bog'liq
Mt pdf

Bubble sort
Bubble Sort - bu eng oddiy tartiblash algoritmi bo'lib, agar ular noto'g'ri tartibda bo'lsa, qo'shni elementlarni qayta-qayta almashtirish orqali ishlaydi.
Misol:  
Birinchi o‘tish: 
5 1 4 2 8 ) –> ( 1 5 4 2 8 ), Bu yerda algoritm dastlabki ikki elementni taqqoslaydi va 5 > 1 dan keyin almashinadi. 
( 1 5 4 2 8 ) –> ( 1 4 ) 5 2 8 ), 5 > 4 dan beri almashtirish 
( 1 4 5 2 8 ) –> ( 1 4 2 5 8 ), 5 dan beri almashtirish > 2 
( 1 4 2 5 8 ) –> ( 1 4 2 5 8 )), Endi, bu elementlar allaqachon tartibda bo'lgani uchun (8 > 5), algoritm ularni almashtirmaydi.
Ikkinchi oʻtish: 
1 4 2 5 8 ) –> ( 1 4 2 5 8 ) 
( 1 4 2 5 8 ) –> ( 1 2 4 5 8 ), 4 > 2 dan beri almashtirish 
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ) 
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ) 
Endi massiv tartiblangan, lekin bizning algoritmimiz uning tugallanganligini bilmaydi. Algoritm tartiblanganligini bilish uchun uni almashtirishsiz bitta to'liq o'tish kerak .
Uchinchi o‘tish: 
1 2 4 5 8 ) –> ( 1 2 4 5 8 ) 
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ) 
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ) ) 
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 ) 
 #include
using namespace std;


void swap(int *xp, int *yp)
{
int temp = *xp;
*xp = *yp;
*yp = temp;
}


void bubbleSort(int arr[], int n)
{
int i, j;
for (i = 0; i < n-1; i++)


for (j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1])
swap(&arr[j], &arr[j+1]);
}


/* Function to print an array */
void printArray(int arr[], int size)
{
int i;
for (i = 0; i < size; i++)
cout << arr[i] << " ";
cout << endl;
}


int main()
{
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
cout<<"Sorted array: \n";
printArray(arr, n);
return 0;
}
Chiqish: 
Saralangan massiv:
11 12 22 25 34 64 90
Eng yomon va o'rtacha ish vaqtining murakkabligi: O(n*n). Eng yomon holat massiv teskari tartiblanganda sodir bo'ladi.
Eng yaxshi ish vaqtining murakkabligi: O(n). Eng yaxshi holat massiv allaqachon tartiblangan bo'lsa sodir bo'ladi.
Yordamchi bo'shliq: O(1)
chegara holatlari: Elementlar allaqachon tartiblangan bo'lsa, qabariq bilan tartiblash minimal vaqtni oladi (n tartibi).
Joyda saralash: Ha
Barqaror: Ha
Oddiyligi tufayli qabariqli tartiblash ko'pincha tartiblash algoritmi tushunchasini kiritish uchun ishlatiladi. 
Kompyuter grafikasida u deyarli tartiblangan massivlarda juda kichik xatolikni (masalan, ikkita elementni almashtirish) aniqlash va uni chiziqli murakkablik (2n) bilan tuzatish qobiliyati bilan mashhur. Masalan, u ko'pburchaklarni to'ldirish algoritmida qo'llaniladi, bunda chegaralovchi chiziqlar ma'lum bir skanerlash chizig'ida (x o'qiga parallel chiziq) x koordinatasi bo'yicha tartiblanadi va y ortishi bilan ularning tartibi o'zgaradi (ikki element almashtiriladi) faqat kesishish joylarida. ikki qatorli
Selection sort
Tanlovni saralash algoritmi tartiblanmagan qismdan minimal elementni (oʻsish tartibini hisobga olgan holda) qayta-qayta topib, uni boshiga qoʻyish orqali massivni saralaydi. Algoritm berilgan massivda ikkita pastki massivni saqlaydi.
1) Allaqachon tartiblangan pastki qator. 
2) Saralanmagan qolgan pastki qator.
Saralashning har bir iteratsiyasida saralanmagan pastki qatordan minimal element (o‘sish tartibini hisobga olgan holda) tanlanadi va tartiblangan pastki qatorga o‘tkaziladi. 
Quyidagi misol yuqoridagi qadamlarni tushuntiradi: 



arr[] = 64 25 12 22 11
// arr[0...4] dagi minimal elementni toping
// va uni boshiga joylashtiring
11 25 12 22 64


// arr[1...4] dagi minimal elementni toping
// va uni arr [1...4] boshiga qo'ying
11 12 25 22 64


// arr[2...4] dagi minimal elementni toping.
// va uni arr boshiga qo'ying[2...4]
11 12 22 25 64


// arr[3...4] dagi minimal elementni toping.
// va uni arr boshiga qo'ying[3...4]
11 12 22 25 64


Code:


#include
using namespace std;
  
void swap(int *xp, int *yp) 

int temp = *xp; 
*xp = *yp; 
*yp = temp; 

  
void selectionSort(int arr[], int n) 

int i, j, min_idx; 
  
for (i = 0; i < n-1; i++) 

min_idx = i; 
for (j = i+1; j < n; j++) 
if (arr[j] < arr[min_idx]) 
min_idx = j; 
  
swap(&arr[min_idx], &arr[i]); 


 
void printArray(int arr[], int size) 

int i; 
for (i=0; i < size; i++) 
cout << arr[i] << " "; 
cout << endl; 


int main() 

int arr[] = {64, 25, 12, 22, 11}; 
int n = sizeof(arr)/sizeof(arr[0]); 
selectionSort(arr, n); 
cout << "Sorted array: \n"; 
printArray(arr, n); 
return 0; 

Quick sort
Birlashtirish saralash kabi , QuickSort ham bo'lish va zabt etish algoritmidir. U elementni pivot sifatida tanlaydi va berilgan massivni tanlangan pivot atrofida ajratadi. QuickSort-ning turli yo'llar bilan pivotni tanlaydigan ko'plab turli versiyalari mavjud. 

  1. Har doim birinchi elementni pivot sifatida tanlang.

  2. Har doim oxirgi elementni pivot sifatida tanlang (quyida amalga oshiriladi)

  3. Pivot sifatida tasodifiy elementni tanlang.

  4. Pivot sifatida medianni tanlang.

QuickSort-dagi asosiy jarayon bo'lim(). Bo'limlar maqsadi - massiv va massivning x elementi pivot sifatida berilgan, x ni tartiblangan massivda o'zining to'g'ri joyiga qo'ying va barcha kichikroq elementlarni (x dan kichik) x dan oldin qo'ying va barcha katta elementlarni (x dan katta) keyin qo'ying. x. Bularning barchasi chiziqli vaqtda amalga oshirilishi kerak.

Download 194,2 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish