CE,快排求教
  • 板块学术版
  • 楼主AAAuc03
  • 当前回复14
  • 已保存回复14
  • 发布时间2024/9/13 20:26
  • 上次更新2024/9/14 10:20:21
查看原帖
CE,快排求教
923362
AAAuc03楼主2024/9/13 20:26
#include <bits/stdc++.h>
using namespace std;
void cmp(int &a[],int i,int j)//《真·排序规则》 
{
	int point=a[i];
	while(i<j)
	{
		while(i<j&&a[j]>=point)
		{
			--j;
		}
		if(i<j)a[i]=a[j];
		while(i<j&&a[i]<=point)
		{
			++i;
		}
		if(i<j)a[j]=a[i];
	}
	a[i]=point;
	return i;//关于void类型有返回值这件事 
}
void unstable_sort(int &a[],int left,int right)//《真·不稳定快排》 
{
	if(left>=right)return;
	int pos=cmp(a,left,right);
	unstable_sort(a,left,pos-1);
	unstable_sort(a,pos+1,right);
}
int main()
{
	int n,a[110];
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	unstable_sort(a,1,n);
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}
	return 0;
}

请忽视带书名号的注释

2024/9/13 20:26
加载中...