From ab60bdb062196689c9102391b8b7b69ef3ef5b34 Mon Sep 17 00:00:00 2001 From: mertkoca Date: Tue, 14 May 2019 14:08:21 +0300 Subject: [PATCH] =?UTF-8?q?Bubble=20Sort(Kabarc=C4=B1k=20S=C4=B1ralama)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bubble Sort(Kabarcık Sıralama) hakkkında bubble sort'un çalışma prensibi,algoritma analizi,en iyi-en kötü durum gibi bilgiler eklenmiştir.Bu pull request'e giren bir kişi bubble sort hakkında kolayca bilgi edinebilir. Ayrıca algoritmada kullanılan swap işlemi hakkında da kod içinde nasıl çalıştığı bilgisi eklenmiştir.Bu işlemi tam anlaşılır hale getirmek içinde alt kısımda örnekle açıklanmıştır.Kod içinde de bazı yerlerde göze hoş gözükmesi için dizayn değişiklikleri yapıldı. --- Sorting/Bubble Sort.cpp | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/Sorting/Bubble Sort.cpp b/Sorting/Bubble Sort.cpp index fed01bfc5..f1a8701a9 100644 --- a/Sorting/Bubble Sort.cpp +++ b/Sorting/Bubble Sort.cpp @@ -24,13 +24,14 @@ int main() //Bubble Sorting for(int i=0; inumbers[j+1]) { swap_check=1; - swap(numbers[j], numbers[j+1]); + swap(numbers[j], numbers[j+1]); //swap yer değiştirme demektir. Yani j. sayi, j+1. sayıdan büyükse yer değiştir anlamındadır. } } if(swap_check == 0) @@ -53,3 +54,35 @@ int main() } return 0; } + +/* +Bubble sort algoritmasının çalışma prensibi: + +Bubble sort algoritmasının türkçesi kabarcık sıralama algoritmasıdır. Kabarcık denmesinin en önemli sebebi bu algoritmada en büyük sayının en sona atılmasıdır. +Tüm mantığını bunun üzerinedir. +Her iterasyonda en büyük sayı sona atılır ve iterasyonlar tamamlandığında sıralama gerçekleşmiş olur. + +Swap Ne Demektir? + +Yazılımda Swap demek iki değişkenin yer değiştirmesi demektir. +Bu işlem için ek bir değişkene ihtiyaç duyulur. x = 5, y = 10 olsun. +Biz istiyoruz ki x = 10, y = 5 olsun. İşte bunu yapmak için en bir değişken oluştururuz. + +int z; +z = x; +x = y; +y = z; + +Yukarıdaki işlem tipik bir yer değiştirme işlemidir. +x değerine y’yi atayınca x’in eski değeri kaybolur. +Bu yüzden biz z diye bir değişken oluşturup ilk başka x değerini orada sakladık, en son olarak da y’ye atadık. + +Bubble Sort Algoritma Analizi (Best Case – Worst Case – Avarage Case) En iyi Durum – En Kötü Durum: + +Bubble Sort En Kötü Durum (Worst Case) Performansı O(n²) şeklindedir. Neden? Çünkü Big O Notasyonu yazımızdan hatırlarsanız iç içe döngülerde algoritma karmaşıklığı hesaplarken döngülerin çarpımını alıyorduk. +n * (n – 1) çarpımı üzerinden bize yine O(n²) performansı gelir. En kötü durumda döngünün tüm adımları gerçekleşecektir. +Bubble Sort Ortalama Durum (Avarage Case) Performansı. Bubble Sort optimal bir algoritma değildir. +ortalama durumda da O(n²) performansı alınmaktadır. +Bubble Sort En iyi Durum (Best Case) Performansı. O(n) şeklindedir. +Ancak yukarıda paylaştığımız kodda en iyi durumu elde edemezsiniz. İyileştirilmiş bubble sort algoritması üzerinde bu durum gerçekleşir. Hemen aşağıda bulunmakta. +*/