社区讨论

归并排序求解

P1177【模板】排序参与者 4已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lod04vvv
此快照首次捕获于
2023/10/30 22:35
2 年前
此快照最后确认于
2023/11/05 08:53
2 年前
查看原帖
CPP
#include <iostream>
using namespace std;

int a[100];
int b[100];

void sort(int l,int r)
{
	if(l+1>=r)	return;
	int mid = (l+r)/2;
	sort(l,mid);
	sort(mid,r);
	int i=l,j=mid,cnt=l;
	while(cnt < r)
	{
		if(i >= mid || (j<r && a[i] > a[j]))
		{
			b[cnt++]=a[j++];
		}
		else
		{
			b[cnt++]=a[i++];
		}
	}
	for(i=l;i<r;i++)
	{
		a[i] = b[i];
	}
	return ;
 } 

int main()
{
	for(int i=1;i<=10;i++)	cin>>a[i];
	sort(1,10);
	for(int i=1;i<=10;i++)	cout<<a[i]<<" ";
	
	
 } 
归并排序,最后一个数总是没排到。。。求解

回复

3 条回复,欢迎继续交流。

正在加载回复...