归并排序算法

归并排序是一种基于分治策略的排序算法,与快排类似但处理顺序不同。它先将数组不断二等分直至每个部分只包含一个元素,然后逐一进行排序并合并,最终形成完整有序数组。归并排序在合并过程中可能需要额外内存,但其稳定性和效率使其成为常用排序算法之一。
摘要由CSDN通过智能技术生成

前言

归并排序算法咋一看和快排很像,也是采用经典的分治策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)阶段就是将分的阶段得到的各答案“修补”在一起,即分而治之)。但是它的处理顺序与快排还是有些不同的。

概念

主要过程就是先将一个数组不停二等分到最小单位,再将其逐一排序再组合成一个完整的有序数组。

示意图

总体示意图:
在这里插入图片描述
“治”阶段(即将2个排好的数组拼成一个大的有序数组)
在这里插入图片描述

核心算法流程图

在这里插入图片描述
#核心算法代码

//分+合方法
	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)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值