php 排序算法
越来越多的公司喜欢在PHP程序员的笔试题中增加排序算法部分,以此来印证PHP程序的计算机基础。今天给大家列出4中常见的PHP排序算法。
操作方法
- 01
1.冒泡排序:(优化过后的) 代码如下: //冒泡排序 $array = array(11,-3,51,-7,9,100,2,-56,32,21); $flag = false; for ($i = 1;$i < count($array);$i++){ for ($j = 0;$j < count($array) - $i;$j++){ if ($array[$j] > $array[$j + 1]){ $temp = $array[$j]; $array[$j] = $array[$j + 1]; $array[$j + 1] = $temp; $flag = true; } } if (!$flag){ break; } $flag = false; } foreach ($array as $value){ echo $value.'  '; }
- 02
2.选择排序(自己优化了下) 代码如下: $array3 = array(11,-3,51,-7,9,100,2,-56,32,21); for ($i = 0;$i < count($array3) - 1;$i++){ for ($j = $i + 1;$j < count($array3);$j++){ if ($array3[$j] < $array3[$i]){ $temp = $array3[$i]; $array3[$i] = $array3[$j]; $array3[$j] = $temp; } } } foreach ($array3 as $value){ echo $value.' '; }
- 03
3.插入排序: 代码如下: $array4 = array(11,-3,51,-7,9,100,2,-56,32,21); for ($i = 1;$i < count($array4);$i++){ $insertVal = $array4[$i]; $insertIndex = $i - 1; while ($insertIndex >=0 && $insertVal < $array4[$insertIndex]){ $array4[$insertIndex + 1] = $array4[$insertIndex]; $insertIndex--; } $array4[$insertIndex + 1] = $insertVal; } foreach ($array4 as $value){ echo $value.' '; }
- 04
4.快速排序 代码如下: function quickSort($arr){ if (count($arr) < 1){ return $arr; } $key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i < count($arr); $i++){ if($arr[$i] <= $key){ $left_arr[] = $arr[$i]; } else { $right_arr[] = $arr[$i]; } } $left_arr = quickSort($left_arr); $right_arr = quickSort($right_arr); return array_merge($left_arr, array($key), $right_arr); } $arr = array(11,-3,51,-7,9,100,2,-56,32,21); $arr2= quickSort($arr); foreach ($arr2 as $key=>$value){ echo $value." "; }