这个程序错在那里呢?怎么运行之后没有对数组进行排序?
#include <iostream>#include <ctime>
using namespace std;
class kuaisu
{
public:
void paixu(int p[],int left,int right);
void getit(int p[])
{
for(int i=0;i<10;i++)
cout<<p[i]<<'\t';
}
void fuzhi(int p[]);
~kuaisu()
{
cout<<"释放完成:"<<endl;
}
private:
int p[10];
};
void kuaisu::fuzhi(int p[])
{
srand(time(0));
for(int i=0;i<10;i++)
p[i]=rand()%6775;
}
void kuaisu::paixu(int p[],int left,int right)
{
int l,r,pivot,temp;
l=left;r=right;
pivot=p[(l+r/2)];
while(r>l)
{
if(l<pivot)
l++;
if(r>pivot)
r--;
if(l>=r)
break;
}
temp=p[l];
p[l]=p[r];
p[r]=temp;
l++;r--;
if(r>left)
paixu(p,left,r);
if(l<right)
paixu(p,l,right);
}
int maia()
{
int vn[10];
kuaisu D;
D.fuzhi(vn);
cout<<"排序前:"<<endl;
D.getit(vn);
cout<<"排序后:"<<endl;
D.paixu(vn,0,9);
D.getit(vn);
return 0;
}