码迷,mamicode.com
首页 > 编程语言 > 详细

【排序学习】排序算法 合并排序 2018.09.26

时间:2018-09-27 00:04:50      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:pre   排序算法   code   lse   std   print   gen   agent   scan   

#include<stdio.h> int a[100001]={-1}; int sort(int l,int r); int magent(int p,int q); int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } magent(1,n); for(int i=1;i<=n;i++){ printf("%d ",a[i]); } return 0; } int magent(int p,int q){ if(p<q){ magent(p,(q+p)/2); magent((q+p)/2+1,q); sort(p,q); } } int sort(int l,int r){ int x=(r+l)/2,n1=x-l+1,n2=r-x; int k1[n1+2],k2[n2+2]; for(int i=1;i<=n1;i++){ k1[i]=a[l+i-1]; } for(int i=1;i<=n2;i++){ k2[i]=a[x+i]; } k1[n1+1]=100001; k2[n2+1]=100001; int z=1,y=1; for(int i=l;i<=r;i++){ if(k1[z]<=k2[y]){ a[i]=k1[z]; z++; }else{ a[i]=k2[y]; y++; } } //printf("%d",x); }

本题目对应codevs1076 的合并算法

【排序学习】排序算法 合并排序 2018.09.26

标签:pre   排序算法   code   lse   std   print   gen   agent   scan   

原文地址:http://blog.51cto.com/13986036/2286299

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!