思路分析:每次从待排序列中选出最大、次大的元素,与冒泡排序相比,每次循环只交换一次位置,节省资源。
function select_sort($array){$len=count($array);if($len<=0){echo '数组不能为空';return;}//两层循环完成排序,外层控制轮数,内层进行便利比较,for($i=$len-1;$i>0;$i--){$tmp = 0;//内层循环从第一个开始,经过循环比对,获取最大值的key,将当前最大值与末尾元素进行对换for($j= 0;$j <= $i;$j++){if($array[$tmp] < $array[$j]){$tmp = $j;}}//如果最大值就是末尾元素,不进行替换if($i!=$tmp){$tmpval = $array[$tmp];$array[$tmp] = $array[$i];$array[$i] = $tmpval;}}return $array;}echo "<pre>";print_r(select_sort($arr));echo "</pre>";
本文介绍了一种简单直观的排序算法——选择排序,并提供了详细的实现步骤和PHP代码示例。选择排序通过每次找到未排序部分的最大元素并将其放到正确的位置来完成整个数组的排序。

被折叠的 条评论
为什么被折叠?



