建设网站时怎么用外部字体,内蒙古头条新闻发布信息,网络舆情平台,网页制作的公司为什么瓯北没有1.认识我一下 1.归并排序(MERGE-SORT)利用归并的思想实现的排序方法,该算法采用经典的分治策略2.分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案修补在一起#xff0c;即分而治之。 2.分合思想 3 分久必合 /*** 合并** param arr …1.认识我一下 1.归并排序(MERGE-SORT)利用归并的思想实现的排序方法,该算法采用经典的分治策略2.分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案修补在一起即分而治之。 2.分合思想 3 分久必合 /*** 合并** param arr 原始数组* param left 左边有序序列的初始索引* param mid 中间索引* param right 最右边那个索引* param temp 中转数组*/public static void merge(int[] arr, int left, int mid, int right, int[] temp) {int i left;//初始化i左边有序序列的初始索引int j mid 1;//初始化j右边有序序列的初始索引int t 0;//指向temp数组的当前索引//1.先把左右两边已经有序的数据按照规则填充到temp数组直到又有两边有序序列有一方处理完毕为止while (i mid j right) {//如果左边序列的当前元素小于或等于右边有序序列的当前元素就把左边的填充到temp中if (arr[i] arr[j]) {temp[t] arr[i];t;i;} else {//反之将右边有序序列的当前元素拷贝到temp数组中temp[t] arr[j];t;j;}}//2.把有剩余数据的一方依次全部填充到temp数组中while (i mid) {//说明左边的元素还有剩余temp[t] arr[i];t;i;}while (j right) {//说明右边有剩余temp[t] arr[j];t;j;}//3.将temp数组的元素拷贝到arr//并不是每次都拷贝8个t 0;int tempLeft left;while (tempLeft right) {//第一次合并tempLeft0,right1arr[tempLeft] temp[t];t;tempLeft;}} 4.分合一体 /*** 分合** param arr* param left* param right* param temp*/public static void mergeSort(int[] arr, int left, int right, int[] temp) {if (left right) {int mid (left right) / 2;//中间索引//向左递归进行分解mergeSort(arr, left, mid, temp);//向右递归进行分解mergeSort(arr, mid 1, right, temp);//合并merge(arr, left, mid, right, temp);}} 5.测试一把 int[] arr new int[]{8, 4, 5, 7, 1, 3, 6, 2};int[] temp new int[arr.length];mergeSort(arr, 0, arr.length - 1, temp);System.out.println(Arrays.toString(arr));