O exemplo deste artigo informa a implementação e a análise simples de vários algoritmos de classificação Java. Compartilhe para todos para sua referência. Os detalhes são os seguintes:
Teste de pacote; É determinado se vietnamita, mas a solicitação da matriz começa no segundo número [J] base, adicione pesquisa binária*/coloque o void bininsertSort (int [] r, int baixo, int alto) {for (int i = baixo+1; i <= alto; i ++) {int temp = r [i]; // Salvar o elemento Int Hi = i -1; ; J> HI; int [] r, int baixo, int alto, int [] delta) {for (for (for (para (para (]. K]);} private void ShellInsert (int [] r, int baixo, int deldak) {for (int i = baixo+deltak; i <= alto; i ++) se (r [i] <r [i- Deltak]) {int temp = r [i]; ]; +) {// como n -1 viagens para int min = k; <r [min]) min = i; min]; i = n/2; 1 ]; J <= High; r [j]; 0, 99, 55, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 3, 2, 1}; fs.insertSort (a); , 0, A.Length-1);
Inserir classificação, classificação de troca, classificação de seleção, classificação de fusões e outros métodos de classificação têm uma característica comum, ou seja, todos determinam a posição relativa entre os elementos através de elementos comparativos, ou seja, os métodos de classificação acima são baseados na comparação. Abaixo, compararemos e resumiremos com base em métodos de classificação comparativos.
Comparamos principalmente os métodos de classificação com a complexidade média do tempo do algoritmo, a pior complexidade do tempo, a complexidade do espaço e a estabilidade da classificação.
Método de classificação Complexidade do tempo médio A pior complexidade do tempo Complexidade A complexidade do espaço e a estabilidade da estabilidade inserida diretamente (n2) (n2) ο (1) classificação de espuma estável (n2) ο (n2) ο (1) classificação estável e rápida ) (N log n) l (n2) ο (log n) instável e simplesmente selecione a classificação (n2) ο (1) ο (1) Classificação de heap instável (n log n) ο (n log n) ο (n log de log n) ο (n log) 1) Classificação de fusão instável ο (n log n) ο (n log n) ο (n) estável
Em termos de desempenho, a classificação rápida é o melhor desempenho real em todos os algoritmos de classificação. Isso pode ser evitado alterando a classificação rápida. Na comparação da classificação da pilha e classificação de fusões, quando n é grande, o tempo necessário para fusões e classificação é menor, mas requer mais espaço de armazenamento auxiliar.
Do ponto de vista da estabilidade do método, na maioria das vezes a complexidade é a classificação (n2) é um método de classificação estável. A maioria dos métodos de classificação com bom desempenho, como classificação rápida, classificação de empilhamento e classificação de Hill são instáveis. De um modo geral, o método de classificação da comparação entre o processo de classificação é estável.
Além disso, a estabilidade do método de classificação é determinada pelo próprio método.
Em resumo, nenhum dos métodos de classificação discutido acima é absolutamente ideal.
Espera -se que este artigo seja útil para o design do programa Java de todos.