|
Ichki saralash algoritmlari
|
bet | 2/16 | Sana | 15.11.2023 | Hajmi | 29,81 Mb. | | #99092 |
Bog'liq Dilshoda Algoritm mustaqilIchki saralash algoritmlari:
Saralash paytida faqat asosiy xotiradan foydalanadigan saralashalgoritmlari ichki tartiblash algoritmlari deb ataladi. Ushbu turdagi algoritm barcha xotiraga yuqori tezlikda tasodifiy kirishni nazarda tutadi. Ushbu tartiblash xususiyatidan foydalanadigan umumiy algoritmlardan ba'zilari quyidagilardir: Bubble sort, Selection sort, Insertion sort va Quick sort saralash algoritmlari kiradi.
Pufakchani saralash algoritmi
Bubble Sort - bu eng oddiy tartiblash algoritmi bo'lib, agar ular noto'g'ri tartibda bo'lsa, ulashgan elementlarni qayta-qayta almashtirish orqali ishlaydi. Ushbu algoritm katta ma'lumotlar to'plamlari uchun mos emas, chunki uning o'rtacha va eng yomon vaqt murakkabligi ancha yuqori.
Bubble Sort qanday ishlaydi?
Pufakcha saralash
Kirish: arr[] = {6, 3, 0, 5}
Birinchi o'tish:
Pufakchani saralash birinchi ikkita elementdan boshlanadi va qaysi biri katta ekanligini tekshirish uchun ularni solishtiradi.
( 6 3 0 5 ) –> ( 3 6 0 5 ), Bu yerda algoritm dastlabki ikki elementni solishtiradi va 6 > 3 dan keyin almashtiriladi.
( 3 6 0 5 ) –> ( 3 0 6 5 ), 6 > 0 dan beri almashtirish
( 3 0 6 5 ) –> ( 3 0 5 6 ), 6 > 5 dan beri almashtirish
Ikkinchi o'tish:
Endi, ikkinchi iteratsiya paytida u quyidagicha ko'rinishi kerak:
( 3 0 5 6 ) –> ( 0 3 5 6 ), 3 > 0 dan beri almashtirish
( 0 3 5 6 ) –> ( 0 3 5 6 ), 5 > 3 sifatida oʻzgarish yoʻq
Uchinchi o'tish:
Endi massiv allaqachon tartiblangan, ammo bizning algoritmimiz uning tugallanganligini bilmaydi.
Algoritm tartiblanganligini bilish uchun uni almashtirishsiz bitta to'liq o'tish kerak.
( 0 3 5 6 ) –> ( 0 3 5 6 ), 3 > 0 sifatida oʻzgarish yoʻq
Massiv endi tartiblangan va boshqa o'tish amalga oshirilmaydi.
Muammoni hal qilish uchun quyidagi amallarni bajaring:
0 ≤ i < n-1 va 0 ≤ j < ni-1 boʻladigan ikkita i va j oʻzgaruvchilari yordamida kirish massivini aylanib oʻtish uchun ichki oʻrnatilgan for siklini ishga tushiring.
Agar arr[j] arr[j+1] dan katta bo'lsa , bu qo'shni elementlarni almashtiring, aks holda davom eting.
Saralangan massivni chop eting
Quyida yuqoridagi yondashuvni amalga oshirish ko'rsatilgan:
// C# program for implementation
// of Bubble Sort
using System;
class GFG {
static void bubbleSort(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (arr[j] > arr[j + 1]) {
// swap temp and arr[i]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
/* Prints the array */
static void printArray(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
Console.Write(arr[i] + " ");
Console.WriteLine();
}
// Driver method
public static void Main()
{
int[] arr = { 5, 1, 4, 2, 8};
bubbleSort(arr);
Console.WriteLine("Sorted array");
printArray(arr);
}
}
|
| |