归并排序
【问题描述】
给定长度为N的乱序数组,请结合刚刚的程序,实现归并排序,使得数组升序排列。1<=N<=103
【输入】
第一行为一个数字N,表示数组的长度,第二行为N个数字,用空格隔开
【输出】
排序后的数组,数字之间用空格隔开
【样例输入】
8
60 71 49 11 82 49 3 66
【样例输出】
3 11 49 49 60 66 71 82
#include<iostream> using namespace std; int a[101], b[101]; void guibing(int left, int right){ // 先分解。 if(left==right) return; int mid=(left+right)/2; guibing(left, mid); guibing(mid+1, right); // 后合并。 int i=left; int j=mid+1; int k=left; // 临时数组下标。 while(i<=mid&&j<=right) { if(a[i]<=a[j]) b[k++]=a[i++]; else b[k++]=a[j++]; } while(i<=mid) b[k++]=a[i++]; while(j<=right) b[k++]=a[j++]; for(int i=1; i<=right; i++) a[i]=b[i]; return; } int main(){ int n; cin>>n; for(int i=1; i<=n; i++){ cin>>a[i]; } guibing(1, n); for(int i=1; i<=n; i++){ cout<<a[i]<<" "; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现