posts - 225, comments - 62, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

用递规函数实现的快速排序

Posted on 2006-04-13 18:37 魔のkyo 阅读(288) 评论(0)  编辑 收藏 引用 所属分类: Programming

 

inline  void  myswap(  int  v[],  int  i,  int  j )
{
    
int  temp;
    temp 
=  v[i];
    v[i] 
=  v[j];
    v[j] 
=  temp;
}
/*  myqsort:以递增顺序对v[left] . v[right] 进行排序 */
void  myqsort(  int  v[],  int  left,  int  right)
{
    
int  i, last;
    
if  ( left  >=  right )  /*  若数组所包含的元素数少于两个,则什么也不做 */
        
return ;
    last 
=  left;
    
/*  取v[left]作为分区元素  */
    
for  ( i  =  left + 1 ; i  <=  right; i ++  )  /*  分区 */
        
if  ( v[i]  <  v[left] ) 
            myswap( v, 
++ last, i );  /* 把比分区元素小的靠左边放置 */
        myswap( v, left, last ); 
/*  插入分区元素到指定位置 */
        myqsort( v, left, last
- 1  );
        myqsort( v, last
+ 1 , right );
}
只有注册用户登录后才能发表评论。