O Radix classifica o único algoritmo de classificação de não comparação?
-
12-11-2019 - |
Pergunta
Como o título diz, é Radix classificar o único algoritmo de classificação de não comparação?Meu palpite é sim.
Solução
Não - Há uma espécie de contagem e tipo de balde também, entre outros.Verifique o artigo wikipedia para mais informações.
Outras dicas
Qualquer conjunto pode ser classificado por não usar comparações.
O processo é
- Decida sobre um tamanho gerenciável do domínio de entrada M Você pode manipular para gravar em uma matriz gerenciável. Para caracteres (8 bits), o domínio seria 0-255.
- dividir a entrada de alguma forma ordenada para a matriz.
- Repetir e enxágue se a entrada ainda não estiver completamente considerada, isto é, todos os bits em m não foram considerados.
Por exemplo, um tipo de 32 bits, m, inteiro, pode ser realizado como:
- Olhe para os primeiros 8 bits, coloque (referências, ponteiros ou o que seu Lang tem disponível), no intervalo de 8 bits. Coloque-os em uma matriz [0-255], agora você tem uma encomenda grossa (ballpark) de seus valores.
- Olhe para os próximos 8 bits, coloque-os em uma matriz similar, mantenha uma referência à primeira encomenda.
Os próximos 8x2 bits são tratados da mesma maneira. Para extrair você, siga os links do primeiro conjunto.
Radix Classe usa dígitos e tem 2 variantes (MSB para LSB) e (LSB para MSB).
Contagem de tipos usa apenas a primeira etapa
O tipo de balde é geralmente mencionado quando se refere a uma mistura de contagem e um tipo de comparação.
Curiosamente, para alguns casos de uso, os tipos de comparação surgem curto.