原理:它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。
原理图:
实例题目:让数组$arr=array(11,3,2,5,8,7,22,33,14)从大到小排列,请使用选择排序
<?php // 选择排序 $arr=array(11,3,2,5,8,7,22,33,14); //从大到小 $len = count($arr); for ($i=0; $i < $len ; $i++) { $max = $arr[$i]; $wz = $i; for ($j=$i+1; $j < $len; $j++) { if($max <= $arr[$j]){ $max = $arr[$j]; $wz = $j; } } // 换位置 if($wz != $i){ $temp = $arr[$i]; $arr[$i] = $max; $arr[$wz] = $temp; } } echo "<pre>"; var_dump($arr); echo "</pre>"; ?>
运行结果
array(9) { [0]=> int(33) [1]=> int(22) [2]=> int(14) [3]=> int(11) [4]=> int(8) [5]=> int(7) [6]=> int(5) [7]=> int(3) [8]=> int(2) }
上一篇:
PHP排序算法--冒泡排序
友情提示:垃圾评论一律封号...