flow chart diagram

3. Saralash algoritmlari(Bubble sort).

Bugungi ma`ruzamiz mavzusi saralash algoritmlarining eng sodda turi bo`lmish “Bubble sort”ga bag`ishlanadi. Bu mavzuni tushunib olish unchalik qiyin emas. Shunchaki diqqat bo`lsa bo`lgani. Demak, boshladik…

“Bubble sort” bu eng sodda, ketma-ketlikdagi har bir sonni boshqa sonlar bilan solishtirishga, asoslangan algoritm hisoblanadi. Unda solishtirish natijasida son noto`g`ri o`rinda turganligi aniqlansa, son o`rni almashtiriladi. Bu jarayon almashtirish kerak bo`lmay qolguncha davom etadi, ya`ni kerakli ketma-ketlikka kelguncha. Bu jarayonni to`liqroq tushunish uchun quyidagi rasmdan foydalanamiz:

 

bubblesort

 

“Bubble sort” eng ko`p vaqt talab qiluvchi saralash algoritmi hisoblanadi. Chunki unda n ta element uchun takrorlanishlar soni 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. Endi esa, bu algoritmlani kodga o`giramiz:

1-usul funksiyalar yordamida yoziladi.

public class BubbleSort {
 
    public static void bubble_srt(int massiv[]) {// funksiyamizga saralash uchun saralanmagan bir o`lchamli massiv kiritiladi
        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]) {
                    almashtirish(i, k, massiv);//almashtirish uchun alohida funksiya
                }
            }
            chiqarish(massiv);//chop etish uchun alohida funksiya
        }
    }
 
    private static void almashtirish(int i, int j, int[] massiv) {
 
        int temp;
        temp = massiv[i];
        massiv[i] = massiv[j];
        massiv[j] = temp;
    }
 
    private static void chiqarish(int[] input) {
 
        for (int i = 0; i < input.length; i++) {
            System.out.print(input[i] + ", ");
        }
        System.out.println("\n");
    }
 
    public static void main(String[] args) {
        int[] saralanmagan = { 4, 2, 9, 6, 23, 12, 34, 0, 1 };
        bubble_srt(saralanmagan);
 
    }
}

2-usul esa faqat main funksiyaning ichida yozishga asoslangan.

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.

(243 marta o'qilgan, bugun 1 marta o'qildi)

O'xshash maqolalar: