Описание алгоритма: для данного набора записей сначала слияйте каждые два смежных последующих последствий длины 1, чтобы получить N/2 (округление вверх), заказанные последующие последующие последствия длины 2 или 1, а затем объединить их в парах и повторить этот процесс, пока не будет получена упорядоченная последовательность.
Сортировка пакета;/*** Срней сортировка* Среднее O (nlogn), Best O (nlogn), худший O (nlogn); Сложность пространства O (n); стабильный; more complex* @author zeng * */public class MergeSort {public static void merge(int[] a, int start, int mid, int end) {int[] tmp = new int[a.length];System.out.println("merge " + start + "~" + end);int i = start, j = mid + 1, k = start;while (i != mid + 1 && j != end + 1) {if (a [i] <a [j]) tmp [k ++] = a [i ++]; else tmp [k ++] = a [j ++];} while (i! = mid+1) tmp [k ++] = a [i ++]; while (j! = end+1) tmp [k ++] = a [j ++]; для (i = start; i <= end; i ++) a [i] = tmp [i]; для (int p: a) system. "); System.out.println ();} static void mergesort (int [] a, int start, int end) {if (ind <end) {int mid = (start + end)/ 2; mergesort (a, start, mid); // упорядоченный Mergesort (a, mid + 1, end); // упорядоченный слия {int [] b = {49, 38, 65, 97, 76, 13, 27, 50}; mergesort (b, 0, b.length - 1);}}Давайте посмотрим на результаты операции:
Суммировать
Выше приведено все содержание этой статьи о простой реализации сортировки слияния алгоритмов сортировки Java. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!