<?php // 冒泡排序 function bubble($value=[]){ $length = count($value)-1; for($j = 0;$j<$length;$j++){ for($i = 0;$i<$length;$i++){ if($value[$i+1]<$value[$i]){ $tmp = $value[$i+1]; $value[$i+1] = $value[$i]; $value[$i] = $tmp; } } } return $value; } $arr = array(5,2,10,22,1,10,9,6,4,55); var_dump(bubble($arr)); echo "<br/>"; //快速排序 function quick($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($left_array); $right_array = quick($right_array); return array_merge($left_array,array($base_num),$right_array); } $arr = array(5,2,10,22,1,10,9,6,4,55); var_dump(quick($arr)); echo "<br/>"; //选择排序 function select($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(5,2,10,22,1,10,9,6,4,55); var_dump(quick($arr)); echo "<br/>"; //插入排序 function insert($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; } $arr = array(5,2,10,22,1,10,9,6,4,55); var_dump(quick($arr)); echo "<br/>";