seo网站排名优化教程,国际网站开发客户的技巧,新一代 网站备案,php学院网站源码package com.ebiz.sort;import java.util.Arrays;/*** author YHj* create 2019-09-03 22:21* /*** 归并排序#xff08;递归#xff09;** ①. 将序列每相邻两个数字进行归并操作#xff0c;形成 floor(n/2)个序列* ②. 执行①直到每组有一个元素 * ③. 各组之间进行比较*… package com.ebiz.sort;import java.util.Arrays;/*** author YHj* create 2019-09-03 22:21* /*** 归并排序递归** ①. 将序列每相邻两个数字进行归并操作形成 floor(n/2)个序列* ②. 执行①直到每组有一个元素 * ③. 各组之间进行比较* ④. 重复步骤③直到所有元素排序完毕。*/public class Merge {public static void main(String[] args) {int [] arr {8,4,5,7,1,3,6,2,9};mergingSort(arr);}public static int[] mergingSort(int[] arr){if(arr.length 1){return arr;}int num arr.length 1;int[] leftArr Arrays.copyOfRange(arr, 0, num);int[] rightArr Arrays.copyOfRange(arr, num, arr.length);System.out.println(split two array: Arrays.toString(leftArr) And Arrays.toString(rightArr));return mergeTwoArray(mergingSort(leftArr), mergingSort(rightArr)); //不断拆分为最小单元再排序合并}private static int[] mergeTwoArray(int[] arr1, int[] arr2){int i 0, j 0, k 0;int[] result new int[arr1.length arr2.length]; //申请额外的空间存储合并之后的数组while(i arr1.length j arr2.length){ //选取两个序列中的较小值放入新数组if(arr1[i] arr2[j]){result[k] arr1[i];}else{result[k] arr2[j];}}while(i arr1.length){ //序列1中多余的元素移入新数组result[k] arr1[i];}while(j arr2.length){ //序列2中多余的元素移入新数组result[k] arr2[j];}System.out.println(Merging: Arrays.toString(result));return result;}} 转载于:https://www.cnblogs.com/jiushixihuandaqingtian/p/11463263.html