快速排序

快速排序
一般分如下步骤:
1)选择一个枢纽元素(有很对选法,我的实现里采用去中间元素的简单方法)
2)使用该枢纽元素分割数组,使得比该元素小的元素在它的左边,比它大的在右边。并把枢纽元素放在合适的位置。
3)根据枢纽元素最后确定的位置,把数组分成三部分,左边的,右边的,枢纽元素自己,对左边的,右边的分别递归调用快速排序算法即可。public   static   void  quicksort( int  stru[],  int  left,  int right){

     if (left < right){
        
int  i = left,j = right;
        
int  X = stru[i];
        
int  n = i;
        
while (i < j){
            
while (X < stru[j] && j > i){
                j
-- ;
            }
            stru[n]
= stru[j];
            n
= j;
            
while (X > stru[i] && i < j){
                i
++ ;
            }
            stru[n]
= stru[i];
            n
= i;
        }
        stru[i]
= X;
        quicksort(stru,left,j
- 1 );
        quicksort(stru,j
+ 1 ,right);
    }
}

你可能感兴趣的:(快速排序)