Ideia de algoritmo de classificação de mesclagem:
Dividir - conquistar; cada processo recursivo envolve três etapas. Primeiro, decomposição: decompor a sequência de n elementos a serem classificados em duas subsequências, cada subsequência incluindo n/2 elementos.
Segundo, Governança: Chame MergeSort em cada subsequência separadamente e execute operações recursivas. Terceiro, Mesclar: Mesclar duas subsequências classificadas para gerar resultados de classificação.
public static void mergeSort(int[] a, int[] tmp, int left, int right) { if (esquerda <direita) { int mid = left + (right - left) / 2; mid);// Classificação à esquerda mergeSort(a, tmp, mid + 1, right); // Classificação à direita merge(a, tmp, left, mid + 1, right); // Mesclar esquerda e direita} }public static void merge(int[] a, int[] tmp, int left, int rightPos, int right) { int leftEnd = rightPos - 1; 1; while (esquerda <= leftEnd && rightPos <= direita) { if (a[esquerda] <a[rightPos]) { tmp[tmpPos++] = a[left++]; ] = a[rightPos++] } for (int i = 0; i < num; i++, right--) { a[right] = tmp[direita];Diagrama esquemático do algoritmo de mesclagem:
O texto acima é todo o conteúdo deste artigo, espero que todos gostem.