Bubble Sort (Kabarcık) Algoritması, karşılaştırma temelli bir algoritmadır. Çalışma prensibi listedeki her bir elemanın yanındaki eleman ile karşılaştırılması ve ilk elemanın değerinin, ikinci elemanın değerinden büyükse iki elemanın yer değişmesi şeklinde gerçekleşmektedir. Daha sonrasında ikinci ve üçüncü elemanların değerleri karşılaştırılır. İkinci elemanın değeri üçüncü elemanın değerinden büyükse bu iki eleman da yer değiştirir. Tüm dizi tamamen bitene dek bu işlem devam etmektedir.
Çalışma Prensibi
- İlk indisten başlayarak birinci ve ikinci elemanlar karşılaştırılır.
- İlk eleman ikinci elemandan büyükse, bu iki eleman yer değiştirilir.
- İkinci ve üçüncü elemanlar karşılaştırılır. Sıralı değillerse yerleri değiştirilir.
- Bu işlemler son elemana kadar devam eder.
- Aynı süreç en baştan tekrar başlar.
- Her iterasyondan sonra sıralanmamış elemanlar arasındaki en büyük eleman en sona yerleştirilir.
- Her yinelemede karşılaştırma sıralanmamış son öğeye kadar gerçekleşir. Sıralanmış bir dizi elde edilmesi hedeflenir.
Bubble Sort Algoritması Pseudocode
bubbleSort(array) for i <- 1 to sizeOfArray -1 for j <- 1 to sizeOfArray -1 -i if leftElement > rightElement swap leftElement and rightElement end bubbeSort
Java Programlama Dili ile Bubble Sort Algoritması
import java.util.Arrays; class Main { static void bubbleSort(int array[]) { int size = array.length; for (int i = 0; i < size - 1; i++) for (int j = 0; j < size - i - 1; j++) if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } public static void main(String args[]) { int[] data = { -2, 45, 0, 11, -9 }; Main.bubbleSort(data); System.out.println("Sorted Array in Ascending Order:"); System.out.println(Arrays.toString(data)); } }
Bubble Sort Algoritması animasyon gösterimi