O exemplo deste artigo informa a fusão e a classificação do resumo do algoritmo de classificação Java. Compartilhe para todos para sua referência. A análise específica é a seguinte:
Operação de mesclagem (mescla), também conhecida como algoritmo de fusão, refere -se à fusão de duas seqüências que foram classificadas em uma operação de sequência. Semelhante à classificação rápida, vejamos a implementação do mesclado em Java.
A classificação de mesclagem (mesclagem) é mesclar as duas (ou mais) ou mais tabelas de pedidos em uma nova ordem, ou seja, dividir a sequência a ser classificada em várias seqüências, e cada sequência subsequente é ordenada. Em seguida, combine a sequência de pedidos na ordem geral.
A classificação de mesclagem é um algoritmo de classificação eficaz com base nas operações de fusão. Esse algoritmo é uma aplicação muito típica de dividir e conquistar. Mesclar as seqüências subsequentes existentes para obter uma sequência completamente ordenada; Se as duas tabelas ordenadas forem mescladas em uma tabela ordenada, chamada 2 estradas.
Merge Algoritmos de classificação são estáveis e a matriz requer espaço extra de O (n).
Princípio de trabalho:
1. Aplique o espaço para fazer o tamanho das duas seqüências classificadas.
2. Defina dois ponteiros, e as posições iniciais são a posição inicial de duas seqüências classificadas, respectivamente.
3. Compare os elementos apontados pelos dois indicadores, escolha um elemento relativamente pequeno no espaço da fusão e mova o ponteiro para o próximo local
4. Repita a etapa 3 até que um ponteiro atinja o fim da sequência
5. Copie todos os elementos restantes na outra sequência diretamente para a cauda da sequência de fusão
Implementação de código:
//////////////// public void Mergesort () {Long [] Workspace = new Long [nelems]; [] Espaço de trabalho, int a parte inferior, int a parte superior) {if (BONDBOUND == Upperbound) {return;} else {int mid = (BONDERBOLENTE+UPERBOUND)/2; Mid+ 1, Upperbound); int mid = highptr -1; +] = Thearray [lowptr ++];} else {workspace [j ++] = thearray [highptr ++];} while (lowptr <= mid) {workspace [j ++] = thearray [lowptr ++]; } While (highptr <= upp erbound) {workspace [j ++] = thearray [highptr ++];} para (j = 0; j <n; j ++) {thearray [BONDERBOUND+J] = espaço de trabalho [j ];}}
A classificação de mesclagem é um tipo relativamente estável. Na ordem de entrada.
Espera -se que este artigo seja útil para o design do programa Java de todos.