冒泡排序
function bubbleSort(){ $arr=array(18,7,3,5,92,4,214,867,369,32,4); $count=count($arr); for($i=1;$i<$count;$i++){ for($j=0;$j<$count-$i;$j++){ if($arr[$j]<$arr[$j+1]){ $temp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; } } } return $arr; }
快速排序
public function quickSort($array){ $count=count($array); if($count<=1){ return $array; } $base_num=$array[0]; $left_array=array(); $right_array=array(); for($i=1;$i<$count;$i++){ if($array[$i]>$base_num){ $left_array[]=$array[$i]; }else{ $right_array[]=$array[$i]; } } $left_array=quickSort($left_array); $right_array=quickSort($right_array); return array_merge($left_array,array($base_num),$right_array); } $array=array(18,7,35,92,421,41,57,3,41,65,1); print_r(quickSort($array));
选择排序
function select($arr)
{
$count = count($arr);
for ($i = 0; $i < $count - 1; ++$i) {
$k = $i;
for ($j = $i + 1; $j < $count; ++$j) {
if ($arr[$j] < $arr[$k]) {
$k = $j;
}
}
if ($k != $i) {
$temp = $arr[$i];
$arr[$i] = $arr[$k];
$arr[$k] = $temp;
}
}
return $arr;
}
插入排序
function insertSort(){ $arr=array(18,7,35,92,421,41,57,3,41,65); $count=count($arr); for($i=1;$i<$count;$i++){ $temp=$arr[$i]; for($j=$i-1;$j>=0;$j--){ if($temp>$arr[$j]){ $arr[$j+1]=$arr[$j]; $arr[$j]=$temp; } } } var_dump($arr); }
桶排序
public function bucketSort(){ $array=array(18,7,35,92,421,41,57,3,41,65,1); for($i=0;$i<=500;$i++){ $temp_array[$i]=0; } for($i=0;$i<count($array);$i++){ $t=$array[$i]; $temp_array[$t]=$temp_array[$t]+1; } for($i=0;$i<=500;$i++){ for($j=1;$j<=$temp_array[$i];$j++){ echo $i.','; } } }
二分查找
function binary_search($array, $item) { $low = 0; $high = count($array)-1; while ($low <= $high) { $mid = floor(($low + $high)/2); $guess = $array[$mid]; if ($guess == $item) { return $mid; } else if($guess < $item) { $low = $mid + 1; } else { $high = $mid - 1; } } return ''; } $array = [1, 2, 3, 4, 5, 6]; $item = 2; echo binary_search($array, $item);
指定概率
二叉树