Uygulanmasi en basit olan siralama algoritmasidir. Dizilerin elemanlarini birbiriyle karsilastirip büyüklügüne göre yer degistirme yapar. Bir örnek üzerinde inceleyecek olursak: 1. Adim: 2. Adim: 3. Adim: 4. Adim: 5. Adim: C# kodu asagidaki gibidir:
Örnegimizde küçükten büyüge siralama yapacagiz.
8 0 3 5 2 4 -- 0 8 3 5 2 4
0 8 3 5 2 4 -- 0 3 8 5 2 4
0 3 8 5 2 4 -- 0 3 5 8 2 4
0 3 5 8 2 4 -- 0 3 5 2 8 4
0 3 5 2 8 4 -- 0 3 5 2 4 8 (8 elemaninin en büyük oldugunu bulduk ve dizinin son elemani olarak atadik. Bundan sonra bu elemani kontrol etmeyecegiz)
0 3 5 2 4 8 -- 0 3 5 2 4 8
0 3 5 2 4 8 -- 0 3 5 2 4 8
0 3 5 2 4 8 -- 0 3 2 5 4 8
0 3 2 4 5 8 -- 0 3 2 4 5 8 (5 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 2. siraya yerlestirdik)
0 3 2 4 5 8 -- 0 3 2 4 5 8
0 3 2 4 5 8 -- 0 2 3 4 5 8
0 2 3 4 5 8 -- 0 2 3 4 5 8 (4 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 3. siraya yerlestirdik)
0 2 3 4 5 8 -- 0 2 3 4 5 8
0 2 3 4 5 8 -- 0 2 3 4 5 8 (3 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 4. siraya yerlestirdik)
0 2 3 4 5 8 -- 0 2 3 4 5 8 (2 elemaninin kendinden önceki elemanlardan büyük oldugunu bulduk ve sondan 5. siraya yerlestirdik)
C# ile Bubble Sort Algoritmasi
public void BubbleSort(int[] dizi)
{
int gecici;
for (int i = 0; i <= dizi.Length - 1; i++)
{
for (int j = 1; j <= dizi.Length - 1; j++)
{
if (dizi[j - 1] > dizi[j])
{
gecici = dizi[j - 1];
dizi[j - 1] = dizi[j];
dizi[j] = gecici;
}
}
}
}
veya
public void BubbleSort2(int[] dizi)
{
int[] dizi = { 8, 0, 3, 5, 2, 4 };
int gecici;
for (int i = dizi.Length - 1; i >= 0; i--)
{
for (int j = 1; j <= dizi.Length - 1; j++)
{
if (dizi[j - 1] > dizi[j])
{
gecici = dizi[j - 1];
dizi[j - 1] = dizi[j];
dizi[j] = gecici;
}
}
}
}
Veysel Ugur KIZMAZ