请问我的快排函数哪里出了问题,谢谢!
  • 板块学术版
  • 楼主StriveChild
  • 当前回复7
  • 已保存回复7
  • 发布时间2020/7/9 20:34
  • 上次更新2023/11/6 23:23:04
查看原帖
请问我的快排函数哪里出了问题,谢谢!
251887
StriveChild楼主2020/7/9 20:34

下面是有bug的代码:

#include <iostream>
using namespace std;
const int MAXN = 10000;
void sortx(int a[],int l,int r);
int main(){
	int a[MAXN];
	int n;
	cin >> n;
	for(int i = 0;i < n;i++){
		cin >> a[i];
	}
	sortx(a,0,n-1);
	for(int i = 0;i < n;i++){
		cout << a[i] << " ";
	}
	cout << endl;
	return 0;
}
void sortx(int a[],int l,int r){
	int i = l;
	int j = r;
	int p = a[l];
	while(i <= j){
		while(p > a[i])i++;
		while(p < a[j])j--;
		if(i <= j){
			int t = a[i];
			a[i] = a[j];
			a[j] = t;
			i++;
			j--;
		}
	}
	if(l < j)return sortx(a,l,j);
	if(i < r)return sortx(a,i,r);
}
2020/7/9 20:34
加载中...