O método da ordem do dicionário é gerar todos os acordos um por um, de acordo com a idéia de classificação de dicionário.
Em matemática, ordem de dicionário ou dicionário (também conhecida como ordem de vocabulário, ordem do dicionário, ordem alfabética ou ordem de dicionário) é um método de ordem alfabética na qual as palavras dispostas alfabéticas baseadas em ordem alfabética. Essa generalização está principalmente na definição da ordem total das seqüências (geralmente chamadas de palavras na ciência da computação) de elementos que definem um conjunto de elementos ordenados completamente ordenados (geralmente chamado de alfabetismo).
Para o arranjo dos números 1, 2, 3 ... n, a sequência de diferentes arranjos é determinada pela comparação da sequência dos números correspondentes um por um da esquerda para a direita. Por exemplo, para os arranjos 12354 e 12345 dos 5 números, o arranjo 12345 está na frente e o arranjo 12354 está na parte traseira. De acordo com esse regulamento, o primeiro entre todos os arranjos dos 5 números é 12345 e o último é 54321.
Por exemplo, todos os arranjos compostos por 1, 2, 3, de pequeno a grande são:
123.132.213.231.312.321
Todos os arranjos que consistem em 1, 2, 3, 4:
1234, 1243, 1324, 1342, 1423, 1432,
2134, 2143, 2314, 2341, 2413, 2431,
3124, 3142, 3214, 3241, 3412, 3421,
4123, 4132, 4213, 4231, 4312, 4321.
Primeiro, uma sequência de caracteres no conjunto de caracteres determinada deve ser especificada e, nessa base, cada arranjo é gerado em sequência.
[Exemplo] Conjunto de caracteres {1,2,3}, os números menores são os primeiros; portanto, o arranjo completo gerado na ordem do dicionário é: 123, 132, 213, 231, 312, 321.
Gere a próxima permutação, com uma permutação completa, e o chamado próximo é a string adjacente à próxima sem ordem de dicionário. Isso requer que este tenha o mesmo prefixo que o próximo o maior tempo possível, ou seja, a variação é limitada ao sufixo mais curto possível.
Existe uma certa relação entre o último arranjo e o arranjo anterior. O processo de solução deste último arranjo é o seguinte:
Com o arranjo (P) = 2763541, classificado pelo dicionário, qual é o seu próximo arranjo?
2763541 (encontre a última ordem positiva 35)
2763541 (encontre o último número 4 após 3 e é maior que 3)
2764531 (Switch 3, 4 posições)
2764135 (Invert 5, 3, 1 após 4)
A seguir, é apresentada uma descrição do próximo arranjo de P [1… N]:
Encontre i = max {j | p [j 1] <p [j]} (encontre a última ordem positiva)
Encontre j = max {k | p [i 1] <p [k]} (encontre o último maior que p [i 1])
Troca p [i 1] e p [j] para obter p [1]… p [i-2] p [j] p [i] p [i+1]… p [j-1] p [i-1] p [j+1]… p [n]
Inverta o número após p [j] para obter p [1]… p [i-2] p [j] p [n]… p [j+1] p [i-1] p [j-1]… p [i]
A implementação do código é a seguinte:
estático privado int [] getPermuation (int [] in) {int [] ns = in; int base = -1; para (int i = ns.length-1; i> = 1; i-) {if (ns [i-1] <ns [i]) {base = i-1; quebra;}} // foi organizado para o outro e está no último e é o último e o último e o {Base = i-1; (int i = ns.length-1; i> = base; i-) {if (ns [i]> ns [base]) {maior = i; quebrar;}} // system.out.println (maior); swap (ns, ns, ns, bigger); reverse (ns+1, nS.Loond 1); {int esquerd = i, direita = j; while (esquerda <direita) {swap (ns, esquerda, direita); esquerda ++; direita-;}} troca de vazio estático privado (int [] ns, int base, int maior) {int temp = ns [base]; ns [base] = ns [bigger]; Bigger] = TEMP;Resumir
O exposto acima é tudo sobre a análise do algoritmo de classificação do dicionário de idiomas Java e exemplos de código. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!