O Back2dos já disse tudo, tentarei esclarecer melhor o ponto que considero mais importante:
A classificação Radix pode classificar apenas os valores primitivos reais contidos na matriz, com base em seus padrões de dígitos binários. Em cenários reais de engenharia de software do mundo real, esse caso é encontrado quase nunca . O que costumamos fazer com mais frequência é ordenar matrizes de estruturas de dados mais complexas (não primitivas) e, algumas vezes, ordenamos matrizes de índices para outras entidades.
Agora, uma matriz de índices para outras entidades é de fato uma matriz de primitivas, mas a ordem de classificação é fornecida pela interface do comparador (e / ou delegado em C #) que compara não os índices, mas as entidades indexadas pelos índices. Portanto, a ordem de classificação não tem absolutamente nenhuma relação com a ordem dos valores das primitivas e, portanto, a classificação de base é absolutamente inútil para esse cenário.
Um exemplo:
Temos uma matriz de cadeias de caracteres: [0] = "Mike", [1] = "Albert", [2] = "Zoro". Em seguida, declaramos uma matriz de índices para essas cadeias: [0] = 0, [1] = 1, [2] = 2. Em seguida, classificamos a matriz de índices, passando a ela um comparador que compara não os próprios índices, mas as seqüências de caracteres reais referidas por esses índices. Após a classificação, a matriz de índices resultante ficará assim: [0] = 1, [1] = 0, [2] = 2. Como você pode ver, essa ordem de classificação não tem nada a ver com os padrões binários dos valores contidos na matriz e, no entanto, percorrendo essa matriz de índices e buscando cada string correspondente, visitamos as strings em ordem classificada.