Bubble Sort(Kabarcık Sıralama)

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ı.
This commit is contained in:
mertkoca 2019-05-14 14:08:21 +03:00 committed by GitHub
parent a3ddfcdcf3
commit ab60bdb062
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,13 +24,14 @@ int main()
//Bubble Sorting //Bubble Sorting
for(int i=0; i<n; i++) for(int i=0; i<n; i++)
{ {
swap_check=0; swap_check=0;
for(int j=0; j<n-1-i; j++) for(int j=0; j<n-1-i; j++)
{ {
if(numbers[j]>numbers[j+1]) if(numbers[j]>numbers[j+1])
{ {
swap_check=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) if(swap_check == 0)
@ -53,3 +54,35 @@ int main()
} }
return 0; 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 yyi atayınca xin 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 yye 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ç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.
*/