#include<iostream>//快速排序不新建臨時(shí)數(shù)組
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 閱讀(243)
評(píng)論(0) 編輯 收藏