#请问”while(i<j&&a[i]<=jz)“这里为什么一定要有这个等于号
查看原帖
#请问”while(i<j&&a[i]<=jz)“这里为什么一定要有这个等于号
596036
abc123654楼主2022/1/20 18:04
#include<bits/stdc++.h>
using namespace std;
int a[1000001],n;
void quicksort(int l,int r){
	int i,j,temp,jz=a[l];
	if(l>=r)return ;
	i=l;
	j=r;
	while(i<j){
		while(i<j&&a[j]>jz){
			j--;
		}
		while(i<j&&a[i]<=jz){
			i++;
		}
		temp=a[i];
		a[i]=a[j];
		a[j]=temp;
		
	}
	a[l]=a[j];
	a[j]=jz;
	quicksort(l,j-1);
	quicksort(j+1,r);
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	quicksort(1,n);
	for(int i=1;i<=n;i++){
		printf("%d ",a[i]);
	}
	return 0;
}
2022/1/20 18:04
加载中...