选择排序
1、假设第一个元素为最小元素,记下下标
2、寻找右侧剩余元素,若有更小的,则记下更小的下标
3、一行对比完成后,交换第一个和最小的元素
4、重新开始以上操作
示例地址:https://www.vqqc.cn/try/php/basics/selection.php
示例代码
<?php
// 数组排序算法:选择排序
$arr = array(1,5,2,9,6,3,4);
// 1、确定要交换多少次:一次只能找到一个最小的,需要找到数组长度对应的次数
for($i = 1, $len = count($arr); $i < $len;$i++ ){
// 2、假设第一个已经排好序
$min = $i; //当前第一个数是最小的
// 3、拿该最小的取比较剩余的其他
for($j = $i + 1; $j < $len; $j++){
//4、 比较当前元素与选定的最小的元素
if($arr[$j] < $arr[$min]){
// 说明当前指定的$min不合适
$min = $j;
}
}
// 5、交换当前选定的值与实际最小的元素值
if($min !=$i){
$temp = $arr[$i];
$arr[$i] = $arr[$min];
$arr[$min] = $temp;
}
}
echo '<pre>';
print_r($arr);
返回结果
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 9
)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容