//冒泡排序
$arr = array(5, 9, 7, 6, 1, 8, 13, 4); $m = count($arr);//sizeof($arr,1)sizeof,第二个参数设置为1,将同时读取二维数组长度 for ($i = 1; $i <= $m; $i++) { $m -= 1; for ($j = 0; $j < $m; $j++) { if ($arr[$j] > $arr[$j + 1]) { $temp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $temp; } } } echo "<pre>"; var_dump($arr); die;
//快速排序
$arr = array(6, 1, 2, 7, 9, 3, 4, 5, 10, 8); function quick_sort($arr) { $count = count($arr); //校验 if (!is_array($arr)) return FALSE; if ($count <= 1) return $arr; //开始 $left = $right = array(); for ($i = 1; $i < $count; $i++) { //判断当前元素的大小 if ($arr[$i] < $arr[0]) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } $left = quick_sort($left); $right = quick_sort($right); //将所有的结果合并 return array_merge($left, array($arr[0]), $right); } echo "<pre>"; print_r(quick_sort($arr)); die;
//选择排序
$arr = array(5, 9, 7, 6, 1, 8, 13, 4); $count = count($arr); for ($i = 0; $i < $count - 1; $i++) { for ($j = $i; $j < $count; $j++) { if ($arr[$i] > $arr[$j]) { $_temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $_temp; } } } echo "<pre>"; var_dump($arr); die;