gpt4 book ai didi

java实现归并排序算法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 28 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章java实现归并排序算法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

归并排序算法思想: 分而治之(divide - conquer);每个递归过程涉及三个步骤 第一, 分解: 把待排序的 n 个元素的序列分解成两个子序列, 每个子序列包括 n/2 个元素. 第二, 治理: 对每个子序列分别调用归并排序MergeSort, 进行递归操作 第三, 合并: 合并两个排好序的子序列,生成排序结果. 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static void mergeSort( int [] a, int [] tmp, int left, int right) {
     if (left < right) {
       int mid = left + (right - left) / 2 ;
       mergeSort(a, tmp, left, mid); // 左排序
       mergeSort(a, tmp, mid + 1 , right); // 右排序
       merge(a, tmp, left, mid + 1 , right); // 左右合并
     }
   }
public static void merge( int [] a, int [] tmp, int left, int rightPos,
       int right) {
     int leftEnd = rightPos - 1 ;
     int tmpPos = left;
     int num = right - left + 1 ;
     while (left <= leftEnd && rightPos <= right) {
       if (a[left] < a[rightPos]) {
         tmp[tmpPos++] = a[left++];
       } else {
         tmp[tmpPos++] = a[rightPos++];
       }
     }
     while (left <= leftEnd) {
       tmp[tmpPos++] = a[left++];
     }
     while (rightPos <= right) {
       tmp[tmpPos++] = a[rightPos++];
     }
     for ( int i = 0 ; i < num; i++, right--) {
       a[right] = tmp[right];
     }
   }

归并算法示意图:

java实现归并排序算法

以上所述就是本文的全部内容了,希望大家能够喜欢.

最后此篇关于java实现归并排序算法的文章就讲到这里了,如果你想了解更多关于java实现归并排序算法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com