Back2dos her şeyi söyledi, sadece en önemli olduğunu düşündüğüm noktayı daha da netleştirmeye çalışacağım:
Radix sıralaması, yalnızca ikili basamak örüntülerine bağlı olarak, dizinin içerdiği gerçek ilkel değerleri sıralayabilir. Gerçek dünyadaki yazılım mühendisliği senaryolarında, bu duruma neredeyse hiç rastlanmaz . Çok daha sık yapmaya meyilli olduğumuz şey, daha karmaşık (ilkel olmayan) veri yapılarının sıralama dizileridir ve bazen dizinlerin dizilerini diğer varlıklara göre sıralarız.
Şimdi, diğer varlıklara yönelik bir dizin dizisi aslında bir ilkel dizisidir, ancak sıralama düzeni, dizinleri değil dizinler tarafından dizinlenen karşılaştırıcı arabirimi (ve / veya C # delegesi) tarafından sağlanır. Bu nedenle, sıralama düzeni ilkellerin değerlerinin sırası ile kesinlikle bir ilişki içinde değildir ve bu nedenle radyant sıralaması bu senaryo için kesinlikle işe yaramaz.
Bir örnek:
Bir dizi dizemiz var: [0] = "Mike", [1] = "Albert", [2] = "Zoro". Sonra bu dizelere bir dizi dizin bildiririz: [0] = 0, [1] = 1, [2] = 2. Daha sonra, dizin dizisini sıralayarak dizinleri kendileri değil, bu dizinler tarafından belirtilen gerçek dizeleri karşılaştıran bir karşılaştırıcı geçiririz. Sıralamadan sonra, sonuçtaki dizin dizisi şöyle görünecektir: [0] = 1, [1] = 0, [2] = 2. Gördüğünüz gibi, bu sıralama düzeninin dizinin içerdiği değerlerin ikili kalıplarıyla hiçbir ilgisi yoktur ve yine de bu dizin dizisini geçerek ve karşılık gelen her dizeyi getirerek dizeleri sıralı olarak ziyaret ederiz.