越简单越好!

冒泡排序和快速排序

发表于 2007-07-24 16:02 | 1385次阅读 0次点赞   PHP
// 冒泡排序(数组排序) 
function  bubble_sort( $array )
{
    $count   =   count ( $array );
    if  ( $count   <=   0 )  return   false ;

    for ( $i = 0 ;  $i < $count ;  $i ++ ){
        for ( $j = $count - 1 ;  $j > $i ;  $j -- ){
            if  ( $array [ $j ]  <   $array [ $j - 1 ]){
                $tmp   =   $array [ $j ];
                $array [ $j ]  =   $array [ $j - 1 ];
                $array [ $j - 1 ]  =   $tmp ;
            }
        }
    }
    return   $array ;
}

// 快速排序(数组排序) 
function  quick_sort( $array ) {
    if  ( count ( $array )  <=   1 )  return   $array ;

    $key   =   $array [ 0 ];
    $left_arr   =   array ();
    $right_arr   =   array ();

    for  ( $i = 1 ;  $i < count ( $array );  $i ++ ){
        if  ( $array [ $i ]  <=   $key )
            $left_arr []  =   $array [ $i ];
        else
            $right_arr []  =   $array [ $i ];
    }

    $left_arr   =  quick_sort( $left_arr );
    $right_arr   =  quick_sort( $right_arr );

    return   array_merge ( $left_arr ,   array ( $key ) ,   $right_arr );
}


返回顶部 ^