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