Çeşitli sıralama algoritmalarını okurken, bazılarının "kararlı" ve bazılarının olmadığını belirttiğimi gördüm. Bu ne anlama geliyor ve bir algoritma seçerken bu temelde ne gibi travmalar söz konusu?
Çeşitli sıralama algoritmalarını okurken, bazılarının "kararlı" ve bazılarının olmadığını belirttiğimi gördüm. Bu ne anlama geliyor ve bir algoritma seçerken bu temelde ne gibi travmalar söz konusu?
Yanıtlar:
Sabit bir sıralama, giriş kümesinin orijinal sırasını koruyan ve karşılaştırma algoritmasının iki veya daha fazla öğe arasında ayrım yapmadığı bir sıralamadır.
Tarafından kartlarını sıralayan bir sıralama algoritması düşünün rütbe değil takım elbise ile. Kararlı sıralama, aynı sıralamaya sahip orijinal kart sırasının korunmasını garanti eder; kararsız sıralama olmaz.
Kararlı algoritmalar, öğelerin göreceli sırasını korur.
Dolayısıyla, kararlı bir sıralama algoritması, eşit olarak karşılaştıran göreceli değer sırasını koruyacaktır.
X boyutuna göre 2d puanlık bir toplama yaptığımız bir sıralama algoritması düşünün.
Sıralanacak koleksiyon: {(6, 3), (5, 5), (6, 1), (1, 3)}
Kararlı Sıralama: {(1, 3), (5, 5), (6, 3), (6, 1)}
Düzenli Sıralama: Ya {(1, 3), (5, 5), (6, 3), (6, 1)}
da{(1, 3), (5, 5), (6, 1), (6, 3)}
Tradeoff gelince ... iyi, istikrarlı sıralama daha az etkilidir, ancak bazen buna ihtiyacın var.
Örneğin, bir kullanıcı bir kullanıcı arayüzündeki değerleri sıralamak için sütun başlığını tıklattığında, önceki sıralama düzeninin eşit değerler olması durumunda kullanılmasını beklemek makul olur.