日期:2014-05-17  浏览次数:20455 次

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); 
}

//二分查找(数组里查找某个元素) 
function bin_sch($array, $low, $high, $k){ 
    if ($low <= $high){ 
        $mid = intval(($low+$high)/2); 
        if ($array[$mid] == $k){ 
        &nb