<?php/** * @author wangdx * @date 2013-04-01 * 排序演算法 */$A=array(4,3,8,1,5);//bubble_sort($A);//insert_sort($A);//quick_sort($A);insert_sort($A);var_dump($A);//bubble_sort冒泡排序function bubble_sort(&$arr){$n=count($arr);for($i=0;$i<$n-1;$i++){for($j=$i+1;$j<$n;$j++){if($arr[$i]>$arr[$j]){$temp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;}}}return $arr;}//insert_sort插入排序function insert_sort(&$arr) { $n=count($arr); for($i=1;$i<$n;$i++) { $tmp=$arr[$i]; $j=$i-1; while($arr[$j]>$tmp) { $arr[$j+1]=$arr[$j]; $arr[$j]=$tmp; $j--; if($j<0) break; } } return $arr;}//快速排序(遞迴)function quick_sort(&$arr) { $n=count($arr); if($n<=1) return $arr; $key=$arr[0]; $left_arr=array(); $right_arr=array(); for($i=1;$i<$n;$i++) { if($arr[$i]<=$key) $left_arr[]=$arr[$i]; else $right_arr[]=$arr[$i]; } $left_arr=quick_sort($left_arr); $right_arr=quick_sort($right_arr); return $arr=array_merge($left_arr,array($key),$right_arr);}