O exemplo deste artigo informa como Java usa a classificação borbulhante para classificar a matriz. Compartilhe para todos para sua referência. Os detalhes são os seguintes:
1. Classificação de bolhas:
Use classificação borbulhante para classificar a matriz
2. Conceitos básicos:
Dois números adjacentes são comparados por sua vez, colocam a frente decimal e o grande número está para trás. Ou seja, na primeira viagem: primeiro compare o primeiro e o segundo número, coloque o decimal antes e o número grande. Em seguida, compare o segundo e o terceiro números, coloque o decimal antes e, depois do grande número, continue, até os dois últimos números, coloque o decimal antes e o grande número seja colocado. Nesse ponto, o maior número foi definido até o final. Na segunda viagem: a partir do primeiro par (porque o segundo número do segundo e o terceiro número podem ser reduzidos, o primeiro número não é mais menor que o segundo número), coloque o decimal depois de colocá -lo, ele foi comparado Até o penúltimo número (a primeira posição já é a maior). Como resultado, repita o processo acima até que o pedido final seja concluído.
Terceiro, perceba as idéias:
Para implementação de loop duplo, a variável do ciclo externo é definido como I e a variável de circulação interna é definida como J. Se houver n números que precisam ser classificados, o ciclo externo é repetido N-1 vezes e o ciclo interno repete N-1, N-2, ..., 1 vez. Os dois elementos que se comparam a cada vez estão relacionados ao ciclo interno J. Eles podem ser identificados com um [j] e um [j+1] separadamente, e o valor de i é 1,2, ..., n-1 , n-1 para o valor de cada i, j é 0,1,2, ... ni.
Deixe o comprimento da matriz n:
1. Comparado com os dois dados adjacentes, se os dados anteriores forem maiores que os dados posteriores, os dois dados serão trocados.
2. Dessa forma, os maiores dados estão "afundando" na posição N-1 da matriz após uma travessia para os dados N-1.
3. N = n-1, se n não for 0, repita as duas primeiras etapas; caso contrário, a classificação será concluída.
4. Implementação de código Java:
Pacote ArrayDemo; int [] a = {2, 4, 76, 12, 34, 23, 86}; * * As funções de classificação de bolhas são definidas como uso estático e conveniente. ++) { / / / este é o número de controle para (int j = 0; j <a.length -i; j ++) {// j <a.length -i, o número de elementos comparativos se (a a [j]> a [j + j + 1]) {int temp = a [j];
5. Análise de desempenho:
Se o status inicial da sequência de registros for "sequência positiva", o processo de classificação Bubbling só precisará ser classificado e apenas a comparação de N-1 durante o processo de classificação é realizada sem registros móveis; 1)/2 Comparações e registros precisam ser executados. Portanto, a complexidade total do tempo de classificação borbulhante é O (n*n).
6. Otimização de algoritmos:
O método de deficiência e melhoria do método de classificação borbulhante:
Primeiro, durante o processo de classificação, após a execução do pedido final, embora os dados tenham sido completamente classificados, o programa não pode determinar se preenche a classificação. Valor de seu valor inicial para não -non -non -non -non -non -non -non -non -non -non -non -non -non -eNough Set Value. Cada classificação é definida como 0 antes do início da classificação. No início de uma nova rodada de classificação, verifique este logotipo.
/ *** Função de classificação de bolhas melhorada*/ public static void bubblesort (int [] a) {sinalizador boolean = true; I ++) {para (int j = 0; j <a <a.length -i; j ++) {if (a [j]> a [j+1]) {int temp = a [j] A [j] = a [j + 1];
Segundo, na classificação borbulhante, uma varredura pode ser trocada inúmeras, ou pode haver uma troca de dados uma ou múltipla. As informações de localização da troca de dados não são processadas. Para fazer pleno uso dessas informações, em uma varredura global, você pode executar a classificação de borbulhantes locais em cada dados de ordem traseira, que é chamada de classificação local de borbulha. Os algoritmos locais de classificação e classificação de borbulhantes têm a mesma complexidade do tempo e, sob a condição de ordem positiva e inversa, o número de palavras -chave necessárias para o número de palavras -chave e movimentos é exatamente o mesmo. Como o número de movimentos de dados de classificação e classificação de borbulhantes locais é sempre a mesma, o número de palavras -chave necessárias para a classificação local de borbulha geralmente é menor que a classificação borbulhante, o que significa que a classificação local de borbulha provavelmente comparará o número médio de vezes em média. do que a falsificação. Para os dados desabilitados por N, quando estamos em classificação borbulhante, se os dados k e k+1 reversa de dados, os dados K+1 serão classificados para a frente, ele se move para a posição correta, ou seja, deixe os dados K+1 anteriores Ajuste em uma ordem positiva. Como esse método borbulhante é apenas borbulhando para os dados anteriores do K+1, chamamos de borbulhamento local
Espera -se que este artigo seja útil para o design do programa Java de todos.