排序

<?php

$array=array(2,5,3,2,7,8,9,0,6,7);

echo '<pre>';
print_r($array);

/**
 * 直接插入排序 0.1
 */
function insertSort(&$array){
    for($i=1,$len=count($array);$i<$len;$i++){
        $j=$i;
        $tmp=$array[$j];
        if($tmp<$array[$j-1]){
            while($j>=0 && $array[$j-1]>$tmp){
                $array[$j]=$array[$j-1];
                $j--;
            }
            $array[$j]=$tmp;
        }
    }
}/**
 * 冒泡排序 0.25
 */
function bubblingSort(&$array){
    for($i=0,$len=count($array);$i<$len-1;$i++){
        for($j=$i+1;$j<$len;$j++){
            if($array[$j]<$array[$i]){
                $tmp=$array[$i];
                $array[$i]=$array[$j];
                $array[$j]=$tmp;
            }
        }
    }
}

/**
 * 快速排序 0.65
 */
function quickSort($array){
    $len=count($array);
    if($len<=1)
        return $array;
    $key=$array[0];
    $left=$right=array();
    for($i=1;$i<$len;$i++){
        if($array[$i]<$key){
            $left[]=$array[$i];
        }else{
            $right[]=$array[$i];
        }
    }
    $left=quickSort($left);
    $right=quickSort($right);
    return array_merge($left,array($key),$right);
}

/**
 * 二分查找法
 */
function binarySearch($array,$search){
    $start=0;
    $end=count($array)-1;
    while($start<=$end){
        $mid=ceil(($start+$end)/2);
        if($array[$mid]==$search){
            return true;
        }elseif($array[$mid]<$search){
            $start=$mid+1;
        }else{
            $end=$mid-1;
        }
    }
    return false;
}

//debug_zval_dump(binarySearch($array,9));

















?>
原文地址:https://www.cnblogs.com/bai-jimmy/p/php.html