PHP 排序

<?php


function Bubble_Sort($arr){
$length = count($arr);
for($i=1;$i<$length;$i++){
for($j=0;$j<$length-$i;$j++){
if($arr[$j] > $arr[$j+1]){
$temp = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $temp;
}
}
}
return $arr;
}


function quick_sort($arr) {
    $length = count($arr);
    if($length <= 1) {
        return $arr;
    }
    $base_num = $arr[0];
    $left_array = array();
    $right_array = array();
    for($i=1; $i<$length; $i++) {
        if($base_num > $arr[$i]) {
            $left_array[] = $arr[$i];
        } else {
            $right_array[] = $arr[$i];
        }
    }
    $left_array = quick_sort($left_array);
    $right_array = quick_sort($right_array);
    return array_merge($left_array, array($base_num), $right_array);
}


function insert_sort($arr) {
    for($i=1, $len=count($arr); $i<$len; $i++) {
        $tmp = $arr[$i];
        for($j=$i-1;$j>=0;$j--) {
            if($tmp < $arr[$j]) {
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $tmp;
            } else {
                break;
            }
        }
    }
    return $arr;
}


function select_sort($arr) {
    for($i=0, $len=count($arr); $i<$len-1; $i++) {
        $p = $i;
        for($j=$i+1; $j<$len; $j++) {
            if($arr[$p] > $arr[$j]) {
                $p = $j;
            }
        }
        if($p != $i) {
            $tmp = $arr[$p];
            $arr[$p] = $arr[$i];
            $arr[$i] = $tmp;
        }
    }
    return $arr;

}


$arr=array(1,343432,54,62,21,66,32,78,36,76,39);  
print_r('Bubble Sort result:');
var_dump(Bubble_Sort($arr));
print_r('Quick Sort result:');
var_dump(quick_sort($arr));
print_r('Insert Sort result:');
var_dump(insert_sort($arr));
print_r('Select Sort result:');
var_dump(select_sort($arr));
發佈了17 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章