栗子


私信TA

用户名:dotcpp0729093

访问量:541

签 名:

believe or not

等  级
排  名 641
经  验 4069
参赛次数 0
文章发表 14
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

#include<iostream>
using namespace std;
int term[100];
void mergsort(int a[],int l,int r)
{
	if(l>=r)
	return;
	int mid=(r+l)/2;//取中间点作为参照 
	mergsort(a,l,mid);//分别对左右两边排序 
	mergsort(a,mid+1,r);
	int k=0;int i=l;//分别从左边和右边进行合并为一 
	int j=mid+1;
	while(i<=mid&&j<=r)
	{
		if(a[i]<=a[j])
		term[k++]=a[i++];
		else
		term[k++]=a[j++];
	}
	while(i<=mid)
	term[k++]=a[i++];
	while(j<=r)
	term[k++]=a[j++];
	for(i=l,j=0;i<=r;i++,j++)
	a[i]=term[j];
}
int main()
{
	int n;
	scanf("%d",&n);
	int a[n];
	for(int i=0;i<n;i++)
	scanf("%d",&a[i]);
	mergsort(a,0,n-1);
	for(int i=0;i<n;i++)
	cout<<a[i]<<" ";
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »