#include<iostream>
using namespace std;
void Swap(int &a,int &b)
{
int c;
c=a;
a=b;
b=c;
}
void ShuChuShuZu(int a[],int size)
{
for(int i=0;i<size;i++)
cout<<a[i]<<" ";
}
void KuaiSu(int a[],int size)
{
int t=0,f=size-1;
for(int i=0;i<size;i++)
{
if(i%2==0)
{
for(int n=f;n>=t;n--)
{
if(a[t]>a[n])
{
Swap(a[t],a[n]);
f=n;
}
}
}
else
{
for(int m=t;m<=f;m++)
{
if(a[f]<a[m])
{
Swap(a[f],a[m]);
t=m;
}
}
}
if(t=f)
break;
}
typedef int* IntPtr;
IntPtr b,c;
b=new int[t];
c=new int[size-t-1];
for(int j=0;j<t;j++)
{
b[j]=a[j];
}
for(int j=0;j<size-t-1;j++)
{
c[j]=a[t+1+j];
}
if(t!=1)
KuaiSu(b,t);
if((size-t-1)!=1)
KuaiSu(c,size-t-1);
}
void PuTong(int a[],int size)
{
for(int i=0;i<size-1;i++)
for(int j=i+1;j<size;j++)
if(a[i]>a[j])
Swap(a[i],a[j]);
}
void main()
{
typedef int* IntPtr;
int Asize;
cout<<"请输入数组的长度!";
cin>>Asize;
IntPtr a;
a=new int [Asize];
cout<<"请输入"<<Asize<<"个整数!"<<endl;
for(int i=0;i<Asize;i++)
{
cin>>a[i];
}
KuaiSu(a,Asize);
ShuChuShuZu(a,Asize);
cout<<endl;
PuTong(a,Asize);
cout<<"排序后的数组为:"<<endl;
ShuChuShuZu(a,Asize);
}
这段快速排序的程序,调试的时候每到执行调用KuaiSu算法时,提示出错,我也看不明白,希望有人能指出问题所在,非常感谢!