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:
“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.
Jahongir Soataliyevning so'nngi maqolalari (hammasini ko'rish)
- 3. Saralash algoritmlari(Bubble sort). - 02/07/2017
- 2. Saralash algoritmlari - 27/06/2017
- 1. Algoritmlash asoslari - 12/06/2017