归并排序-MergeSort

归并排序是一种采用分治策略的排序算法,通过递归将数组不断拆分直至只剩一个元素,然后逐步合并已排序的小数组。在合并过程中,从左右两个子数组中选择较小元素放入临时数组,直至某子数组为空,最后将剩余元素添加到临时数组。这种方法保证了排序的稳定性。通过递归函数,最终完成整个数组的排序。
摘要由CSDN通过智能技术生成

归并排序就是递归得将原始数组递归对半分隔,直到不能再分(只剩下一个元素)后,开始从最小的数组向上归并排序。

  1. 将一个数组拆分为两个,从中间点拆开,通过递归操作来实现一层一层拆分。
  2. 从左右数组中选择小的元素放入到临时空间,并移动下标到下一位置。
  3. 重复步骤2直到某一下标达到尾部。
  4. 将另一序列剩下的所有元素依次放入临时空间。
  5. 将临时空间的数据依次放入原数据数组

 

 分解

	public static void mergeSort(int[] a, int low, int high) {
		//首先判断 low 和 high是否指向一个地方
           // 正常情况下就是 == 
		if(low == high) {
			return;
		}
		int mid = (low + high)/2;
		//先递归左边
		mergeSort(a, low, mid);
		//在递归右边
		mergeSort(a, mid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值