栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

归并排序详解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

归并排序详解

 归并排序采用的是分治的思想,先将待排序的部分分为左部分和右部分,左右两部分在不断细分,再将左边和右边分别合并排序,最后将左边和右边合并排序;

#include
using namespace std;
const int N=1e5+10;
int a[N],temp[N],n;//temp数组用来中间过渡存储

void merge(int l,int r){//归并函数 
    if(l>=r) return;
    int mid=l+r>>1;
    merge(l,mid);//归并左区间 
    merge(mid+1,r);//归并右区间 
    int k=0;
    int i=l,j=mid+1;//一起归并 
    while(i<=mid&&j<=r){
        if(a[i]>n;
    for(int i=0;i>a[i];
    merge(0,n-1);
    for(int i=0;i 

 输入样例:

5
3 1 2 4 5

输出样例:

1 2 3 4 5

对于样例:3,1,2,4,5:

先将其分为3,1,2和4,5两部分,再将3,1,2分为3,1和2两部分,3,1又分为3和1两部分;

将4,5分为4和5两部分,再将4和5合并排序为4,5,将3,1合并排序为1,3,再将1,3和2合并排序为1,2,3,再将1,2,3和4,5合并排序为1,2,3,4,5;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号