两个小代码而已,都整那么复杂干嘛,又是类又是方法,又是指针,又是std::的,高射炮打蚊子打习惯了,都是工程大神么?搞的都没有参考价值
#include<iostream>
#include<cstdlib>
using namespace std;
int n,a[1000];
void qsort2(int l,int r) {
if(l>=r)return;
int mid=a[(l+r)/2],p1=l-1,p2=r+1,p=l;
while(p<p2) {
if(a[p]<mid) {
swap(a[p++],a[++p1]);
} else if(a[p]>mid) {
swap(a[p],a[--p2]);
} else {
p++;
}
}
qsort2(l,p1);
qsort2(p2,r);
}
void qsort1(int l,int r) {
if(l>r)return;
int mid=a[(l+r)/2],ll=l,rr=r;
while(l<=r) {
while(a[l]>mid) {
l++;
}
while(a[r]<mid) {
r--;
}
if(l<=r) {
swap(a[l],a[r]);
l++;
r--;
}
}
qsort1(ll,r);
qsort1(l,rr);
}
int main() {
cin>>n;
for(int i=1; i<=n; ++i) {
// cin>>a[i];
a[i]=rand()%10;
}
qsort2(1,n);
for(int i=1; i<=n; ++i) {
cout<<a[i]<<" ";
}
return 0;
}