14-归并排序算法
归并排序算法
1 |
|
采用了递归方式来实现归并排序算法。具体而言,我们将待排序数组划分为两个子数组,并对每个子数组进行排序。然后,将排序后的两个子数组归并成一个有序数组。
在实现过程中,我们还需要定义一个临时数组 temp
,用于临时存储归并操作的结果。具体步骤如下:
- 在
mergeSort()
方法中,首先检查当前子数组的大小是否小于 2,如果是,则直接返回; - 然后计算出子数组的中间位置
mid
,并递归地调用mergeSort()
方法来分别对左右两个子数组进行排序; - 最后调用
merge()
方法,将排序后的左右两个子数组归并成一个有序子数组。 - 在
merge()
方法中,我们使用三个指针i
、j
和k
来遍历左右两个子数组和临时数组。比较nums[i]
和nums[j]
的大小,将较小的值存入temp[k]
中,同时将相应的指针向前移动一位。当其中一个指针到达了子数组的末尾时,我们将另一个子数组中剩余的元素全部复制到临时数组中。最后,将临时数组中的元素复制回原数组。
验证:
1 |
|
14-归并排序算法
https://janycode.github.io/2017/06/28/03_数据结构/04_算法/14-归并排序算法/