Sayıları basamaklarına veya bitlerine göre karşılaştırma yapmadan gruplayarak sıralayan algoritma varyantlarıdır.
Radix Sort, elemanları anahtarlarının basamaklarına (veya ikili gösterimlerindeki bitlerine) göre sıralayan, karşılaştırma yapmayan bir sıralama algoritmasıdır. Sedgewick notlarında özellikle iki temel varyantı incelenir.
Taban Değişimli Sıralama (Radix Exchange Sort), sayıların bit gösterimini MSB'den (En Değerli Bit) LSB'ye doğru inceler ve quicksort'a benzer şekilde bit değerine göre bölümlendirerek çalışır. İkili ağaç yapısında veri gruplamaya benzer.
Düz Tabanlı Sıralama (Straight Radix Sort - LSD), sayıları LSB'den (En Değersiz Bit) MSB'ye doğru, kararlı (stable) bir alt sıralama algoritması (genellikle Counting Sort) kullanarak basamak basamak sıralar.
Aşağıdaki uygulamalar PDF kaynaklarındaki pseudo kod akışını modern veri yapılarıyla ifade eder. Kenar durumları görünür bırakıldığı için örnekler doğrudan test edilebilir.
1function straightRadixSort(arr: number[]): number[] {2 const max = Math.max(...arr);3 let exp = 1;4 const n = arr.length;5 const output = Array(n).fill(0);67 while (Math.floor(max / exp) > 0) {8 const count = Array(10).fill(0);9 for (let i = 0; i < n; i++) {10 const digit = Math.floor(arr[i] / exp) % 10;11 count[digit]++;12 }13 for (let i = 1; i < 10; i++) {14 count[i] += count[i - 1];15 }16 for (let i = n - 1; i >= 0; i--) {17 const digit = Math.floor(arr[i] / exp) % 10;18 output[count[digit] - 1] = arr[i];19 count[digit]--;20 }21 for (let i = 0; i < n; i++) {22 arr[i] = output[i];23 }24 exp *= 10;25 }26 return arr;27}Sıralanacak pozitif tam sayıları virgülle ayırarak girin. Örnek: 170, 45, 75, 90, 802, 24, 2, 66
Sıralanacak pozitif tam sayıları virgülle ayırarak girin. Örnek: 170, 45, 75, 90, 802, 24, 2, 66
En İyi Durum: O(n * w)
Ortalama Durum: O(n * w)
En Kötü Durum: O(n * w)
O(n + k) - Bu algoritmanın karmaşıklığı belirtilmemiş.
Radix Sort Varyantları (Radix Sort Variants) Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar: