关注分享主机优惠活动
国内外VPS云服务器

我们可以将合并排序与Java排序一起使用吗(Java实现了各种排序算法)

当然可以用Java实现合并排序算法。 归并排序是一种分而治之的策略,它将问题递归地分解为更小的子问题,并将子问题的解合并到原始问题的解中。 下面是用Java实现合并排序的示例代码。

公共  合并排序 {
 公共 静态 void main(String[] args) {
 int[] arr = {9876543, 2, 1};
 mergeSort(arr, 0, arr.length - 1);
    (int num : arr) {
 System.out.print(num + " "); 
 }
 }

 公共 静态 void 合并排序( int[] arr,int左,int 右) {
 if(左和lt; 右) {
 int mid = (左 + 右) / 2;
 mergeSort(arr, left, middle);  class="hljs-comment">// 左半部分合并排序
 mergeSort(arr, middle + 1, right); ="hljs-comment">//合并右半部分并排序
 merge(arr, left, middle, right) // 连接左右部分
 } 
 }

 public static  void span> 合并(int[] arr, int left,int中,int右) {
 int[] temp =  int[右 - 左 + 1]; //创建临时数组,保存合并结果
 int i = left;
 int j = mid + 1;
 int k = 0;

 //比较左右元素,将较小的元素放入临时数组
 while ( i < = 中 && j <= 右) {
 if (arr[i] <= arr[j]) {
 temp[k++] = arr[ i++];
 } else {
 temp[k++] = arr[j++];
 }
 }

 // 将左半部分剩余元素放入临时数组
 while (i <= mid) {
 temp[k++] = arr[i++];
 }

 //将右半部分剩余元素保存到临时数组中输入  
 while (j <= right) {
 temp[k++] = arr[j++];
 }
 
 //将临时数组的元素复制到原数组中。数组
 for (int p  = 0 {
 arr[left; + p] = temp[p ];
 }
 }
}

这段代码定义了一个名为 MergeSortmain 方法和两个辅助方法:mergeSortmerge 方法,并调用 mergeSort 方法对其进行排序。排序完成后,使用for-each循环打印出排序后的数组

以上内容来自。互联网,并不代表本站所有观点。欢迎访问:zhujipindao.com

未经允许不得转载:主机频道 » 我们可以将合并排序与Java排序一起使用吗(Java实现了各种排序算法)

评论 抢沙发

评论前必须登录!