Idéia do algoritmo: classifique por um dígito, dez dígitos ... por sua vez. Cada POS possui um processo de alocação e um processo de coleta. Array [i] [0] registra o número de dados na i-ésima linha.
Classificação do pacote;/*** Centro da cardinalidade* média o (d (n+r)), melhor o (d (n+r)), pior o (d (n+r)); complexidade espacial o (n+r); estável; Mais complexo * d é o número de dígitos, r é o número de listas vinculadas após a alocação * @author zeng * */public class Radixsort {// POS = 1 representa um dígito único, POS = 2 representa dez dígitos public estático int getNuminpos (int num, int) {int tmp = 1; /tmp) % 10;} // Encontrando o dígito máximo dpublic static int getMaxweishu (int [] a) {int max = a [0]; para (int i = 0; i <a.length; i ++) {if (a [i]> max = a [i]; tmp! = 0) {d ++;} mais quebra;} retorna d;} public static void radixsort (int [] a, int d) {int [] [] array = new int [10] [a.length+1]; para (int i = 0; i <10; i ++) {array [i] [0] = 0; = 1; <= Array [linha] [0]; getMaxweishu (a)); para (int i: a) System.out.print (i + "");}}Preste atenção aos resultados em execução:
Resumir
O exposto acima é todo o conteúdo deste artigo sobre a implementação do código de classificação da cardinalidade para a implementação do idioma Java. Espero que seja útil para todos. Os amigos interessados podem continuar se referindo a outros tópicos relacionados a Java neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!