快速排序do-while这里要不要等号
查看原帖
快速排序do-while这里要不要等号
1063958
Zhengjunye080120楼主2023/10/5 09:11

#include<bits/stdc++.h>

using namespace std;

void qsort(int, int);

long long a[100000001];

int main()

{

	int n,i;
    
	cin>>n;
    
	for(i=1;i<=n;i++)
    
	cin>>a[i];
    
	qsort(1,n);
    
	for(i=1;i<=n;i++)
    
	cout<<a[i]<<" ";
    
	cout<<endl;
    
	return 0;
    
}

void qsort(int l,int r)

{

	int i,j,mid,p;
    
	i=l;j=r;
    
	mid=a[(l+r)/2];
    
	do
    
	{
    
		while(a[i]<mid)	 i++;
        
		while(a[j]>mid)  j--;
        
		if(i<=j)
        
		{
			p=a[i];a[i]=a[j];a[j]=p;
            
			i++;j--;
		}
	}
	while(i<=j);
	if(l<j) qsort(l,j);
	if(i<r) qsort(i,r);
} 

倒数第三行的while(i<=j);要不要等号?

有没有等号在洛谷P1177排序模版都能过。

一本通书上说一定要有等号。

求助各位大佬谢谢!!!!

2023/10/5 09:11
加载中...