Este artigo apresenta principalmente como o Java atinge oito algoritmos de classificação comumente usados: inserindo classificação, classificação borbulhante, selecionando classificação, classificação de colinas, classificação rápida, classificação de fusões, ordem de empilhamento e classificação de base LST.
Classificação
1) Inserir classificação (classificação diretamente inserida, classificação de colinas)
2) Classificação de troca (classificação borbulhante, classificação rápida)
3) Selecione a classificação (selecione a classificação diretamente, a classificação empilhada)
4) Merge classificação
5) Distribuição e classificação (classificação de base)
O espaço auxiliar necessário é o mais: o espaço mais auxiliar para fusões e classificação: a velocidade mais rápida da ordem da ordem de empilhamento: classificação rápida
Instável: classificar rapidamente, classificar as colinas, a classificação empilhada.
Vamos dar uma olhada no relacionamento entre 8 classificação:
1. Insira diretamente o tipo
(1) Idéias básicas: entre os conjuntos a serem classificados, assumindo (n-1) [n> = 2] o número já é linha
Para agora, o número NN é inserido na ordem anterior, para que este número n
Também está em ordem. Isso circula repetidamente até que toda a ordem esteja em ordem.
(2) Exemplo
(3) perceber com Java
pacote com.njue; 17,18,23,34,15,35,25,53,51}; Temp = a [i]; teste;} para (int i = 0; i <A.Length; i ++) {System.out.println (a [i]);}}}}}2.
(1) Ideias básicas: O número de grupos a serem classificados pelo algoritmo é dividido em vários grupos de acordo com o número de d aumentados (n/2, n como o número a ser classificado). e classificados e, em seguida, use um aumento menor (d/2) para agrupá -lo e, em seguida, insira diretamente a classificação em cada grupo. Quando o incremento é reduzido para 1, o tipo é inserido diretamente e a classificação é concluída.
(2) Exemplo:
(3) perceber com Java
PublicClass Shellsort {publicshellsort () {int a [] = {1,54,3,78,34,12,45,56,100}; .CEIL (D1/2); ) {int j = id; j+d] = temp;}} if (d == 1) {break;} para (int i = 0; i <A.Length; i ++) {System.out.println (a [i]);} }}3. Seleção simples de classificar
(1) Ideias básicas: em um grupo a ser classificado, selecione o menor número do número de números e a primeira posição;
Em seguida, encontre o menor número da segunda posição nos números restantes, para que o loop seja comparado com o último número do último número e o último número.
(2) Exemplo:
(3) perceber com Java
classe pública SelectSort {public SelectSort () {int a [] = {1,54,3,78,34,12,45}; ) {int j = i+1; j]; eu] );}}4. Classificação de heap
(1) Idéias básicas: A classificação de embalagem é uma seleção em forma de árvore, que é uma melhoria eficaz da seleção direta de classificação.
A definição da pilha é a seguinte: uma sequência (H1, H2, ..., Hn) com n elementos, e apenas como satisfeito (Hi> = H2i, Hi> = 2i+1) ou (Hi <= H2i, oi <= 2i 2i) +1) (i = 1,2, ..., n/2) é chamado de pilha. Aqui, discutimos apenas as pilhas que atendem às condições do primeiro. Pode ser visto a partir da definição da pilha de que o elemento superior (ou seja, o primeiro elemento) deve ser o maior item (um grande despejo superior). A árvore binária completa pode representar intuitivamente a estrutura da pilha. A parte superior da pilha está enraizada e os outros são deixados sub -árvores e sub -árvores direito. Inicialmente, as seqüências a serem classificadas são consideradas uma árvore binária armazenada em ordem, ajustando sua ordem de armazenamento para que se tornem uma pilha. Em seguida, troque o nó raiz com o último nó da pilha. Em seguida, reajuste o número anterior (N-1) para fazê-lo se enquadrar. De acordo com esse tipo, até que haja apenas dois nós e troque -os e, finalmente, obtenha uma sequência ordenada de n nós. Do ponto de vista da descrição do algoritmo, o sequenciamento de empilhamento requer dois processos. Portanto, existem duas funções composição da classificação de heap. Um é a função de penetração da pilha, e a outra é chamar repetidamente a função de infiltração para implementar a função de classificação.
(2) Exemplo:
Sequência inicial: 46,79,56,38,40,84
Construção:
Troca, chute o número máximo da pilha
Os nós restantes são construídos novamente e o número máximo é trocado
Empurre em ordem: os dois últimos nós na última pilha dos dois últimos nós são trocados, um é expulso e o tipo é concluído.
(3) perceber com Java
Importar java.util.arrays; , 15,35,25,53,51}; Comprimento; 0, ArrayLength-i); Método Goneralted Stub int tmp = dados [i]; ) {// TODO Auto-Genement Method Stub // O nó pai do nó (último nó) do LastIndex Start for (int i = (lastIndex-); i> = 0; i-) {// k Salvar o nó Int k = i; O BiggerIndex é menor que o LastIndex, ou seja, o nó certo do nó K representando o nó k representado pelo BiggerIndex+1 existe se (BiggerIndex <LastIndex) {// se o valor do nó direito for maior (dados [BiggerIndex ] <data [biggerindex+1]) {// biggerindex sempre registra o índice biggerindex ++;} // se o valor do nó k for menor que o valor do nó k se (dados [dados [dados [dados k k ] <Data [BiggerIndex]) {// troca sua troca (dados, k, BiggerIndex); do que o valor dos nós esquerdo e direito.5. Classificação de bolhas
(1) Idéias básicas: em um grupo a ser classificado, todos os números dentro do escopo que ainda não foram descarregados, comparação e ajuste dos dois números adjacentes de cima para baixo, de modo que os maiores são vários, menores. Ou seja: sempre que dois números adjacentes são comparados, eles acham que seus requisitos de classificação e classificação são opostos e eles trocam.
(2) Exemplo:
(3) perceber com Java
classe pública bubblesort {publicbbitsort () {Inta [] = {49,38,65,97,76,13,49,78,34,5,4,62,98,54,54,56, 17,18,23 , 34,15,35,25,53,51}; Comprimento-1-i; +1] = temp;}}} para (int i = 0; i <A.Length; i ++) {System.out.println (a [i]);}}6. Classifique rapidamente
(1) Ideias básicas: Escolha um elemento de referência, geralmente escolha o primeiro elemento ou o último elemento. Elemento de referência.
(2) Exemplo:
(3) perceber com Java
PublicClass Quicksort {Inta [] = {49,38,65,97,76,13,27,78,34,264,5,4,99,98,54,56,17,18 234,15,35,25 , 53,51}; [] List, int baixo) {int tmp = list [Low]; Lista alta-;} [Low] = Lista [High]; [High] = Lista [Low]; int baixo, int alto) {if (baixo <alto) {int middle = getMiddle (lista, baixa, alta); Classificação de Tables_quicksort de baixo teatro (Lista, Médio + 1, Alto); Array é vazio_quicksort (A2,0, A2.Length -1);}}}7. Merge classificação
(1) Classificação básica: o método de classificação de anexo (fusão) é mesclar dois (ou mais) ou mais formas em um novo pedido, que é prefácio. Em seguida, combine a sequência de pedidos na ordem geral.
(2) Exemplo:
(3) perceber com Java
Importar java.util.arrays; , 15,35,25,53,51}; (a [i]);} PublicVoid Sort (int [] dados, int esquerda, int direita) {// TODOGONERDTEDMETHOD Stub if (esquerda <direita) { / / / / Find Intermediate Index Int Center = (esquerda+direita) /2; ;}} Merge PublicVoid (Int [] Dados, Int Left, Int Center, Int Right) {// TODO-GONEATES INT [Data.Length]; Projeto de Midrena Int = Esquerda; ]) {tmparr [terceiro ++] = dados [esquerda ++];} else {tmparr [terceiro ++] = dados [mid ++]; ++];} while (esquerda <= central) {tmparr [terceira ++] = dados [esquerda ++]; println (Arrays.toString (dados));8. Classificação base
(1) Idéias básicas: uniforme todos os valores de comparação (números inteiros positivos) com o mesmo comprimento de número e o número de dígitos curtos é composto antes de zero. Então, começando da posição mais baixa e classificando por sua vez. Isso se tornará uma sequência ordenada da posição mais baixa até a classificação mais alta.
(2) Exemplo:
(3) perceber com Java
Importar java.util.arraylist; , 54,101,56,17,18,23,34,15,35,25,53,51}; {System.out.println (a [i]);}} public void Sort (Int [] Array) {// Primeiro, determine o número de viagens de classificação; <array.length; Time ++;} // Crie 10 filas; Ins> (); <Array; int) math.pow (10, i 10, i); 0; = Queue.get (K);O exposto acima é todo o conteúdo deste artigo.