精短的快速排序代码

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<set>
#include<map>
#include<queue>
#include<stack>
using namespace std ;

void QuickSort(int a[] , int l , int r){
     if(l >= r ) return ; 
     int x = a[(l+r)>>1] , i = l , j = r ; 
     do{
           while(a[i] < x) ++i ; 
           while(a[j] > x) --j ; 
           if(i <= j ) swap(a[i++],a[j--]); 
     }while(i<=j);
     QuickSort(a , i , r) ;
     QuickSort(a , l , j) ; 
}

int main(){
    int a[] = { 0 , -10 , 1 , 23 , 100 , 2340 , -9 , 124 } ; 
    QuickSort(a , 0 , 7) ;
    for(int i = 0 ; i < 8 ; ++ i ) 
       cout << a[i] << endl ;     
    system("pause");
    return 0 ;
}

posted on 2012-02-21 12:59 IronOxide 阅读(304) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿

随笔分类

随笔档案

ACMer

方向

搜索

最新评论

阅读排行榜

评论排行榜