0
已解决
李泽远
高级天翼
高级天翼
本人编程萌新,请各位大佬给我展示展示归并排序的C++代码
不要从网上找,网上的代码看着难受
李泽远在2020-07-30 11:01:37追加了内容
归并排序
李泽远在2020-07-30 11:10:18追加了内容
刚刚谁给我刷信息!4249条!!!我现在信息系统瘫痪了,502bad,谁干的,站出来!!!
李泽远在2020-07-30 11:11:43追加了内容
张某某,给我滚!!!赔我的问答未读信息系统!!!
李泽远在2020-07-30 11:15:28追加了内容
是朋友的帮我一把,给张天璨刷赞,把它的未读信息刷爆
0
已采纳
王子健
初级天翼
初级天翼
归并排序,你说的是归并排序?什么J6的课程,我早就学了,但不知道是不是你要的:
这是我们邢老师带我们写的注释,你看一下:
#include <iostream>
using namespace std;
int a[1000005], b[1000005], c[2000015];
int main() {
int m, n;
cin >> m;
for (int i=1; i<=m; i++) {
cin >> a[i];
}
cin >> n;
for (int i=1; i<=n; i++) {
cin >> b[i];
}
int i=1, j=1, k=0;
while (i<=m && j<=n) {
if (a[i] < b[j]) {
c[++k] = a[i];
i++;
} else {
c[++k] = b[j];
j++;
}
}
//将剩下的元素接到c数组后面
while (i<=m) {
c[++k] = a[i];
i++;
}
while (j<=n) {
c[++k] = b[j];
j++;
}
for (int i=1; i<=k; i++)
cout << c[i] << " ";
return 0;
}
(不能保证是你要的)
0
黄子扬
初级天翼
初级天翼
#include<iostream>
#include<cstdio>
using namespace std;
int t[100005],s[100005];
void MergeSort(int l,int r)
{
if(l==r) return;
int mid=(l+r)/2;
MergeSort(l,mid);
MergeSort(mid+1,r);
int p=l,q=mid+1,i=l;
while(p<=mid&&q<=r)
{
if(s[p]<s[q])
t[i++]=s[p++];
else
t[i++]=s[q++];
}
while(p<=mid)
t[i++]=s[p++];
while(q<=r)
t[i++]=s[q++];
for(int i=l;i<=r;i++)
s[i]=t[i];
}
int main()
{
int i,n;
cin>>n;
for(i=1;i<=n;i++)
scanf("%d",&s[i]);
MergeSort(1,n);
for(i=1;i<=n;i++)
printf("%d ",s[i]);
cout<<endl;
return 0;
}
虽然结贴了还是过来贴一下
0