#include<iostream>//快速排序不新建临时数组
using namespace std;
void swap(int &a,int &b){
if(&a==&b)
return;
a=a^b;
b=a^b;
a=a^b;
}
void quick(int *a,int n)
{
if(n<=1)
return ;
swap(*a,a[n>>1]);
int*lp=a+1;
int*rp=a+n-1;
while(rp-lp>=0)
{
if(*lp>*a)
{
if(*rp<*a){
swap(*lp++,*rp--);
}
else
--rp;
}
else
++lp;
}
swap(*a,*rp);
int left=rp-a;
quick(a,left);
quick(a+left+1,n-left-1) ;
}
int main(){
int a[5]={0 ,5, 9, 8, 7 };
int b[10]={2,5,9,6,3,1,4,7,1 ,5 };
quick(b,10);
for(int i=0;i<10;i++)
cout<<b[i]<<' ';
cout<<endl;
char ch;
cin>>ch;
return 0;
}
posted on 2007-01-25 22:51
sunny 阅读(236)
评论(0) 编辑 收藏