选择排序大约和冒泡排序一样简单了吧 , 不过它的效率要比冒泡排序好很多 , 冒泡排序作为公认最慢的排序算法 ... 这个已经无疑问了 - - ...
选择排序非常简单的代码 :
// 交换 function swap(& $a, & $b) { $temp = $a; $a = $b; $b = $temp; } function selectSort($a){ $l = count($a); for($i=0; $i<$l; $i++) { $max = $i; for($j=$i+1; $j<$l; $j++) $a[$j] < $a[$max] && $max = $j; $max !== $i && swap($a[$i], $a[$max]); } return $a; }
当然 , 函数 selectSort 还可以写的更简单
function selectSort($a) { $l = count($a); for($i=0; $i<$l; $i++) for($j=$i; $j<$l; $j++) $a[$j]<$a[$i] && swap($a[$i], $a[$j]); return $a; }
当然 , 第一种写法显然交换次数更少 , 算法更优 .
用法 :
echo(implode(",", selectSort($a)));// $a 是一个无序数组 , 例如 $a=range(1,100);shuffle($a);
嘎嘎 , 如果有更好的思想 , 请跟帖哈
时间: 2024-10-13 10:04:29