排序算法之 - 选择排序
选择排序
选择排序也是重复执行一个动作的流程:从 待排序列表 中查找 最小 的元素,将它与 待排序列表 的 第一个元素进行 交换,交换之后第一个元素进入 已排序列表,除去 第一个元素之后的其他元素组成 下一轮的待排序列表,其初始状态如图:
第一轮运行流程及结果:
第二轮运行流程及结果:
第三轮运行流程及结果:
第四轮运行流程及结果:
第五轮运行流程及结果:
第六轮运行流程及结果:
第七轮运行流程及结果:
第八轮运行流程及结果:
附PHP实现代码:
<?php function selection($arrayNeedsSort) { $length = count($arrayNeedsSort); for ($i = 0; $i < $length - 1; $i++) { $compare = $arrayNeedsSort[$i]; $pos = $i; for ($j = $i + 1; $j < $length; $j++) { if ($compare > $arrayNeedsSort[$j]) { $compare = $arrayNeedsSort[$j]; $pos = $j; } } $tmp = $arrayNeedsSort[$pos]; $arrayNeedsSort[$pos] = $arrayNeedsSort[$i]; $arrayNeedsSort[$i] = $tmp; } return $arrayNeedsSort; } $array = [5, 9, 3, 1, 2, 8, 4, 7, 6]; $res = selection($array); echo '<pre>'; print_r($res); 运行结果: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )










浙公网安备 33010602011771号