Kabarcık Sıralaması, bilgisayar bilimlerinde kullanılan yalın bir sıralama algoritmasıdır. Sıralanacak dizinin üzerinde sürekli ilerlerken her defasında iki öğenin birbiriyle karşılaştırılıp, karşılaştırılan öğelerin yanlış sırada olmaları durumunda yerlerinin değiştirilmesi mantığına dayanır. Algoritma, herhangi bir değişiklik yapılmayıncaya kadar dizinin başına dönerek kendisini yineler. Adına "Kabarcık" sıralaması denmesinin nedeni büyük olan sayıların aynı suyun altındaki bir gibi dizinin üstüne doğru ilerlemesidir.
Kabarcık sıralaması | |
---|---|
Kabarcık sıralaması'nın rastgele üretilmiş sayıları sıraladığını gösteren bir örnek | |
Sınıf | Sıralama algoritması |
Veri yapısı | Dizi |
Zaman karmaşıklığı | О(n²) |
En iyi | Yok |
Alan karmaşıklığı | toplamda О(n), ek alan O(1) |
Başlangıçta yer yer değiştirme sıralaması olarak adlandırılan kabarcık sıralaması, dizi içindeki büyük elemanların algoritmanın her adımında dizinin sonuna doğru doğrusal olarak ilerlemesini sağlar. Bu ilerleme, seçmeli sıralama algoritmasındaki dizideki değeri küçük olan elemanların dizinin başında kümelenmesi yöntemine benzer şekilde gerçekleşir.
İnceleme
Kabarcık sıralaması dizinin başından başlar ve dizi elemanlarını sırayla seçer. Seçilen dizi elemanı kendinden sonra gelen elemandan büyükse bu iki elemanın yerleri değiştirilir. Bu işlem sonucunda dizinin en büyük elemanı dizi sonuna yerleştirildiğinden bir sonraki adımda arama sınırı bir eleman geri çekilir. Bu işlem, dizinin sonundaki elemanın karşılaştırılmasına kadar yinelenerek sürdürülür.
Algoritmanın Karmaşıklığı
Kabarcık sıralama algoritmasının ortalama ve en kötü durumdaki karmaşıklığı 'dir. Algoritma ortalama ve en kötü durumda adet karşılaştırma ve yer değiştirme gerçekleştirir.
Algoritmanın Adım Adım İşleyişi
İçeriği "5 1 4 2 8" olan bir dizi kabarcık sıralaması ile en küçükten en büyüğe doğru aşağıdaki biçimde sıralanır. Her adımda dizinin kalın olarak işaretlenmiş elemanları karşılaştırılan elemanlardır.
Birinci Geçiş:
(5 1 4 2 8 ) (1 5 4 2 8 ) Burada algoritma ilk iki elemanı karşılaştırır ve yerlerini değiştirir.
(1 5 4 2 8 ) (1 4 5 2 8 )
(1 4 5 2 8 ) (1 4 2 5 8 )
(1 4 2 5 8) (1 4 2 5 8) Burada elemanlar zaten sıralı olduğu için algoritma yerlerini değiştirmez.
İkinci Geçiş:
(1 4 2 5 8 ) (1 4 2 5 8 )
(1 4 2 5 8 ) (1 2 4 5 8 )
(1 2 4 5 8 ) (1 2 4 5 8 )
(1 2 4 5 8) (1 2 4 5 8)
Artık dizi sıralıdır ancak algoritma işlemin bittiğini bilmemektedir. Algoritmanın dizinin sıralandığını anlaması için bütün dizinin üzerinden hiçbir değişiklik yapmadan tam bir geçiş yapması gerekir.
Üçüncü Geçiş:
(1 2 4 5 8 ) (1 2 4 5 8 )
(1 2 4 5 8 ) (1 2 4 5 8 )
(1 2 4 5 8 ) (1 2 4 5 8 )
(1 2 4 5 8) (1 2 4 5 8)
Sonuç olarak dizi sıralanmıştır ve algoritma sonlanır.
Sözde Kodu
Algoritmanın yalın bir sözde kod olarak gösterimi aşağıdaki gibidir:
procedure bubbleSort(A : sıralanabilir öğe dizisi ) defined as: do swapped := false for each i in 0 to length(A ) - 2 do: if A[ i ] > A[ i + 1 ] then swap(A[ i ], A[ i + 1 ] ) swapped := true end if end for while swapped end procedure </gösterilebilir:
procedure bubbleSort( A : sıralanabilir öğe dizisi ) defined as: for each i in 1 to length(A) do: for each j in length(A) downto i + 1 do: if A[ j -1 ] > A[ j ] then swap( A[ j - 1], A[ j ] ) end if end for end for end procedure
Diğer Sıralama Algoritmaları
Dış bağlantılar
- K 28 Kasım 2020 tarihinde Wayback Machine sitesinde .
abarcık Sıralama MATLAB 28 Kasım 2020 tarihinde Wayback Machine sitesinde . Kod Örneği 28 Kasım 2020 tarihinde Wayback Machine sitesinde .
- Kabarcık Sıralama Python 28 Kasım 2020 tarihinde Wayback Machine sitesinde . Kod Örneği 28 Kasım 2020 tarihinde Wayback Machine sitesinde .
- 20 programlama dilinde yazılmış Kabarcık Sıralaması örnekleri 6 Şubat 2008 tarihinde Wayback Machine sitesinde .
- Java Applet olarak Kabarcık Sıralaması 20 Ekim 2007 tarihinde Wayback Machine sitesinde .
- Kabarcık Sıralaması örneği - 2 29 Ocak 2008 tarihinde Wayback Machine sitesinde .
- Kabarcık Sıralaması örneği - 3 19 Ocak 2008 tarihinde Wayback Machine sitesinde .
- Kabarcık Sıralaması örneği - 4 (İspanyolca) 19 Şubat 2008 tarihinde Wayback Machine sitesinde .
- C++ ile yazılmış sıralama uygulamacıkları 24 Şubat 2008 tarihinde Wayback Machine sitesinde .
- Kabarcık Sıralaması'nı uygulayan C++ programı 2 Şubat 2008 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Kabarcik Siralamasi bilgisayar bilimlerinde kullanilan yalin bir siralama algoritmasidir Siralanacak dizinin uzerinde surekli ilerlerken her defasinda iki ogenin birbiriyle karsilastirilip karsilastirilan ogelerin yanlis sirada olmalari durumunda yerlerinin degistirilmesi mantigina dayanir Algoritma herhangi bir degisiklik yapilmayincaya kadar dizinin basina donerek kendisini yineler Adina Kabarcik siralamasi denmesinin nedeni buyuk olan sayilarin ayni suyun altindaki bir gibi dizinin ustune dogru ilerlemesidir Kabarcik siralamasiKabarcik siralamasi nin rastgele uretilmis sayilari siraladigini gosteren bir ornekSinifSiralama algoritmasiVeri yapisiDiziZaman karmasikligiO n En iyiYokAlan karmasikligitoplamda O n ek alan O 1 Kabarcik siralamasinin duragan gosterimi Baslangicta yer yer degistirme siralamasi olarak adlandirilan kabarcik siralamasi dizi icindeki buyuk elemanlarin algoritmanin her adiminda dizinin sonuna dogru dogrusal olarak ilerlemesini saglar Bu ilerleme secmeli siralama algoritmasindaki dizideki degeri kucuk olan elemanlarin dizinin basinda kumelenmesi yontemine benzer sekilde gerceklesir IncelemeKabarcik siralamasi dizinin basindan baslar ve dizi elemanlarini sirayla secer Secilen dizi elemani kendinden sonra gelen elemandan buyukse bu iki elemanin yerleri degistirilir Bu islem sonucunda dizinin en buyuk elemani dizi sonuna yerlestirildiginden bir sonraki adimda arama siniri bir eleman geri cekilir Bu islem dizinin sonundaki elemanin karsilastirilmasina kadar yinelenerek surdurulur Algoritmanin Karmasikligi Kabarcik siralama algoritmasinin ortalama ve en kotu durumdaki karmasikligi O n2 displaystyle mathcal O n 2 dir Algoritma ortalama ve en kotu durumda n2 2 displaystyle mathcal n 2 2 adet karsilastirma ve yer degistirme gerceklestirir Algoritmanin Adim Adim Isleyisi Icerigi 5 1 4 2 8 olan bir dizi kabarcik siralamasi ile en kucukten en buyuge dogru asagidaki bicimde siralanir Her adimda dizinin kalin olarak isaretlenmis elemanlari karsilastirilan elemanlardir Birinci Gecis 5 1 4 2 8 displaystyle to 1 5 4 2 8 Burada algoritma ilk iki elemani karsilastirir ve yerlerini degistirir 1 5 4 2 8 displaystyle to 1 4 5 2 8 1 4 5 2 8 displaystyle to 1 4 2 5 8 1 4 2 5 8 displaystyle to 1 4 2 5 8 Burada elemanlar zaten sirali oldugu icin algoritma yerlerini degistirmez Ikinci Gecis 1 4 2 5 8 displaystyle to 1 4 2 5 8 1 4 2 5 8 displaystyle to 1 2 4 5 8 1 2 4 5 8 displaystyle to 1 2 4 5 8 1 2 4 5 8 displaystyle to 1 2 4 5 8 Artik dizi siralidir ancak algoritma islemin bittigini bilmemektedir Algoritmanin dizinin siralandigini anlamasi icin butun dizinin uzerinden hicbir degisiklik yapmadan tam bir gecis yapmasi gerekir Ucuncu Gecis 1 2 4 5 8 displaystyle to 1 2 4 5 8 1 2 4 5 8 displaystyle to 1 2 4 5 8 1 2 4 5 8 displaystyle to 1 2 4 5 8 1 2 4 5 8 displaystyle to 1 2 4 5 8 Sonuc olarak dizi siralanmistir ve algoritma sonlanir Sozde Kodu Algoritmanin yalin bir sozde kod olarak gosterimi asagidaki gibidir procedure bubbleSort A siralanabilir oge dizisi defined as do swapped false for each i in 0 to length A 2 do if A i gt A i 1 then swap A i A i 1 swapped true end if end for while swapped end procedure lt gosterilebilir b procedure b bubbleSort A b b siralanabilir oge dizisi b defined as b b for each b i b in b 1 b to b length A b do b b for each b j b in b length A b downto b i 1 b do b b if b A j 1 gt A j b then b swap A j 1 A j b end if b b end for b b end for b b end procedure b Diger Siralama AlgoritmalariHizli Siralama Birlestirmeli Siralama Secmeli Siralama Kokteyl Siralamasi Tarak Siralamasi Yigin Siralamasi Eklemeli Siralama Kabuk SiralamasiDis baglantilarK 28 Kasim 2020 tarihinde Wayback Machine sitesinde abarcik Siralama MATLAB 28 Kasim 2020 tarihinde Wayback Machine sitesinde Kod Ornegi 28 Kasim 2020 tarihinde Wayback Machine sitesinde Kabarcik Siralama Python 28 Kasim 2020 tarihinde Wayback Machine sitesinde Kod Ornegi 28 Kasim 2020 tarihinde Wayback Machine sitesinde 20 programlama dilinde yazilmis Kabarcik Siralamasi ornekleri 6 Subat 2008 tarihinde Wayback Machine sitesinde Java Applet olarak Kabarcik Siralamasi 20 Ekim 2007 tarihinde Wayback Machine sitesinde Kabarcik Siralamasi ornegi 2 29 Ocak 2008 tarihinde Wayback Machine sitesinde Kabarcik Siralamasi ornegi 3 19 Ocak 2008 tarihinde Wayback Machine sitesinde Kabarcik Siralamasi ornegi 4 Ispanyolca 19 Subat 2008 tarihinde Wayback Machine sitesinde C ile yazilmis siralama uygulamaciklari 24 Subat 2008 tarihinde Wayback Machine sitesinde Kabarcik Siralamasi ni uygulayan C programi 2 Subat 2008 tarihinde Wayback Machine sitesinde