选择排序
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
![php基础教程-数组选择排序算法[技术分享]-try栈](https://www.vqqc.cn/wp-content/uploads/2022/12/1670165600-logo_img_sc2_vectorized.png)

![光遇自动更新每日任务接口[接口分享]-try栈](https://www.vqqc.cn/wp-content/uploads/2022/12/1670250329-apijktppt.png)
![简单用html写了一个光遇蜡烛查询的网页工具[实用工具]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/02/1676084107-微信图片_20230211105428.png)
![php基础教程-数组冒泡排序算法[技术分享]-try栈](https://www.vqqc.cn/wp-content/uploads/2022/12/1670257414-slt..png)
![JS基础教程:2023.4.2坚持第35天-JavaScript web APIs BOM操作[js教程]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/04/1680450097-Web-APIs.png)
![JS基础教程:2023.2.27第一天-JavaScript从入门到精通[js教程]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/02/1677510437-JS基础.png)
![java入门基础教程:2023.2.27第一天,Java快速入门、IDEA开发工具的使用[java教程]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/02/1677498626-画布-1.png)




暂无评论内容