16 Ocak 2022, 23:46
0 Yorum
764 Okuma
Buble Sort; Kabarcık veya Boloncuk Sıralama algoritması olarak da Türkçe'ye çevrilebilmektedir. Sıralama algoritmalarının başlangıcında özellikle üzerinde durulan algoritmalardan birtanesidir. Algoritmanın özellikleri maddeler halinde alt kısımda belirtilmiştir. İç içe döngüler yardımıyla bir dizi sayının karşılaştırılması temeline dayanan bir yapısı bulunmaktadır. Bu yazının alt kısmında bulunan video bubble sort algoritmasının nasıl çalıştığının somutlaştırılabilmesi ve daha kolay anlaşılması maksadıyla paylaşılmıştır.
- Lineer bir sıralama algoritmasıdır.
- Her değer tek tek tüm değerlerle karşılaştırılır en büyük en sağa atılır.
- Doğrusal bir karşılaştırma yapar.
- Varsayılan olarak küçükten büyüğe doğru sıralar.
- Worst-Avarage Case O(n^2)'dir
- Best Case O(n)'dir. En İyi durumda dizi sıralıdır.
Kaç elemanlı bir dizi geliyorsa -1 defa ana iterasyona girer.
1. İterasyon (99-13-8-25-7)
$dizi[0]:99-13 -> 13-99-8-25-7
$dizi[1]:99-8 -> 13-8-99-25-7
$dizi[2]:99-25 -> 13-8-25-99-7
$dizi[3]:99-7 -> 13-8-25-7-99
2.İterasyon (13-8-25-7-99)
$dizi[0]:13-8 -> 8-13-25-7-99
$dizi[1]:13-25 -> 8-13-25-7-99
$dizi[2]:25-7 -> 8-13-7-25-99
3.İterasyon
$dizi[0]:8-13 -> 8-13-7-25-99
$dizi[1]:13-7 -> 8-7-13-25-99
4.İterasyon
$dizi[0]:8-7 -> 8-7-13-25-99
Yukarıdaki Açıklaması Verilen Algorirmanın Php ile Kodlanması:
function bubleSort($dizi = array())
{
for ($i = 0; $i < count($dizi); $i++) {
$temp = null;
for ($j = 0; $j < count($dizi) - $i - 1; $j++) {
if ($dizi[$j] > $dizi[$j + 1]) {
$temp = $dizi[$j];
$dizi[$j] = $dizi[$j + 1];
$dizi[$j + 1] = $temp;
}
}
}
return $dizi;
}
$dizi = [38, 95, 7, 88, 5];
echo "Dizinin Son Hali:";
print_r(bubleSort($dizi));