排序算法---选择排序
选择排序法是一种不稳定的排序算法。
选择排序算法原理如下:
每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置
从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
以此类推,直到全部待排序的数据元素排完。
数据演示:
待排序序列:10 7 15 2 5 27 13
第1轮:【2】10 7 15 5 27 13 //【】里的元素为已排好序数列
第2轮:【2 5】 10 7 15 27 13
第3轮:【2 5 7】10 15 27 13
第4轮:【2 5 7 10】15 27 13
第5轮:【2 5 7 10 13】15 27
第6轮:【2 5 7 10 13 15】27
第7轮:【2 5 7 10 13 15 27】
代码实现:
function selectionSort($arr) {
$len = count($arr);
if($len<=1) {
return $arr;
}
for($i=0;$i<$len;$i++) {
$minIndex = $i; //假设未有序的第一个为最小元素
for($j=$i+1;$j<$len;$j++) {
if($arr[$j]<$arr[$minIndex]) {
$minIndex = $j; //更新最小元素下标
}
}
$temp = $arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $temp;
}
return $arr;
}
print_r(selectionSort($arr));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】