Kabarcık sıralaması
Listeyi tekrar tekrar dolaşır ve sırası yanlış olan komşuların yerini değiştirir. Her turdan sonra kalan en büyük değer sona ulaşır.
- en iyi Ω(n)
- ortalama Θ(n²)
- en kötü O(n²)
- bellek O(1)
- kararlı
- ek bellek istemez
Bunlar ne demek?
- En iyi durum: girdi bu algoritma için en kolay olduğunda sürenin liste boyutu n ile nasıl arttığı.
- Ortalama: sürenin n ile olağan artışı. n²'de değer sayısı iki katına çıkınca süre yaklaşık dört katına çıkar; n log n çok daha yavaş artar.
- En kötü durum: en zor girdideki artış. Hızın asla düşmemesi gerektiğinde işe yarar.
- Bellek: listenin dışında ne kadar ek bellek gerektiği. 1 birkaç değişken, n listenin bir kopyası demektir.
- Kararlı: eşit iki değer başlangıçtaki sıralarını korur. Kayıtlar tek bir alana göre sıralanırken önemlidir.
- Ek bellek istemez: ikinci bir liste olmadan, listenin kendi içinde sıralar.
- karşılaştırılıyor
- taşınıyor
- son yerinde
Oynat'a basın: çizgiler maliyetin nasıl arttığını gösterir
Oynat tuşuna basın veya algoritmada adım adım ilerleyin.
Boşluk: oynat veya duraklat. Sol ve sağ oklar: adım adım. Home ve End: atla.
Şunu deneyin: Neredeyse sıralı bir liste seçin. Hiç yer değiştirme olmayan bir turdan sonra algoritma erken durur.
Nasıl çalışır
Her seferinde iki komşuyu karşılaştırır, soldaki büyükse yerlerini değiştirir. Böylece her turda en büyük değer, yükselen bir kabarcık gibi en sağa kadar gider. Bir turda hiç yer değiştirme olmazsa liste zaten sıralıdır.
Ne zaman iyi bir seçimdir
Gerçek programlarda neredeyse hiç kullanılmaz, çünkü uzun listelerde yavaştır. Öğrenmek içinse harikadır: karşılaştırıp yer değiştirerek sıralamanın temel fikrini gösterir. Yalnızca liste zaten sıralıysa hızlıdır.