Bubble sort




Bubble sort ikki qoʻshni elementni solishtirish va ular moʻljallangan tartibda boʻlmaguncha, ularni almashtiradigan tartiblash algoritmidir. Xuddi suv yuzasiga koʻtarilgan havo pufakchalarining harakati kabi, massivning har bir elementi har bir iteratsiyada oxirigacha harakat qiladi. Shuning uchun u pufakchali saralash deb ataladi.

„Bubble sort“ bu eng sodda, ketma-ketlikdagi har bir sonni boshqa sonlar bilan solishtirishga asoslangan algoritm hisoblanadi. Unda yonma-yon turgan elementlardan chapdagisi o‘ngdagidan kattaligi aniqlansa, bu ikkala son oʻrni almashtiriladi. Bu jarayon almashtirish kerak boʻlmay qolguncha davom etadi, yaʼni barcha elementlar o‘sish tartibida bo‘lib qolguncha.

„Bubble sort“ nisbatan koʻp vaqt talab qiluvchi saralash algoritmi hisoblanadi. Chunki unda n ta element uchun takrorlanishlar soni taqriban n*n ga teng. Bu, n kichik son boʻlsa unchalik sezilmaydi. Sababi, hozirgi zamonaviy kompyuterlar uchun bu takrorlanish soni qiyinchilik tugʻdirmaydi. Ammo butun boshli maʼlumotlar bazasidagi maʼlumotlarni saralash talab etilsachi? Albatta vaqtdan yutqazamiz. Ammo, bu algoritm saralash algoritmlarini tushunib olish uchun ilk qadam hisoblanadi.

Bosqichma-bosqich misol



„5 1 4 2 8“ raqamlari massivini oling va pufakchali tartiblash yordamida massivni eng kichik sondan eng katta raqamga tartiblang. Har bir bosqichda qalin harf bilan yozilgan elementlar taqqoslanadi. Uchta oʻtish kerak boʻladi;

Birinchi oʻtish

Ikkinchi oʻtish

Endi massiv allaqachon tartiblangan, lekin algoritm uning tugallanganligini bilmaydi. Algoritm tartiblanganligini bilish uchun uni almashtirishsiz yana bitta toʻliq oʻtish kerak.

Uchinchi oʻtish

Algoritmi va dasturi



public class BubbleSort {
public static void main(String[] args) {
int[] massiv = { 4, 2, 9, 6, 23, 12, 34, 0, 1 };
int n = massiv.length;
int k;
for (int m = n; m >= 0; m--) {
for (int i = 0; i < n - 1; i++) {
k = i + 1;
if (massiv[i] > massiv[k]) {
int temp;
temp = massiv[i];
massiv[i] = massiv[k];
massiv[k] = temp;
}
}
for (int i = 0; i < massiv.length; i++) {
System.out.print(massiv[i] + ", ");
}
System.out.println(„\n“);
}
}
}
Chiqariluvchi natijamiz esa:

2, 4, 6, 9, 12, 23, 0, 1, 34, // 1-qadam.

2, 4, 6, 9, 12, 0, 1, 23, 34, //2-qadam.

2, 4, 6, 9, 0, 1, 12, 23, 34,//3-qadam.

2, 4, 6, 0, 1, 9, 12, 23, 34,//4-qadam.

2, 4, 0, 1, 6, 9, 12, 23, 34,//5-qadam.

2, 0, 1, 4, 6, 9, 12, 23, 34,//6-qadam.

0, 1, 2, 4, 6, 9, 12, 23, 34, //7-qadam.

0, 1, 2, 4, 6, 9, 12, 23, 34, //8-qadam.

0, 1, 2, 4, 6, 9, 12, 23, 34,//9-qadam.

0, 1, 2, 4, 6, 9, 12, 23, 34, // saralangan holdagi massiv.

Manbalar



https://dasturchi.uz/algorithm/3-saralash-algoritmlaribubble-sort/

https://en.wikipedia.org/wiki/Bubble_sort

https://www.geeksforgeeks.org/bubble-sort/

https://www.programiz.com/dsa/bubble-sort

uz.wikipedia.org

Uzpedia.uz