文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP常见算法 - 选择排序 排序步骤输出展示

2023-09-05 13:05

关注
// 将数组由小到大排序$arr = [3, 4, 2, 8, 9, 1, 6];echo json_encode($arr).'

';// 1、需要选择的次数,每次只能选择一个最大或者最小值for ($i = 0, $len = count($arr); $i < $len; $i++) { // 2、假设第一个值就是最小值 $min = $i; echo '第'.($i+1).'次的min值:'.$arr[$min].'
'; echo '内层输出:
'; // 3、将最小值和其他剩余值一一比较 for ($j = 1 + $i, $len = count($arr); $j < $len; $j++) { // 4、找到最小值 if ($arr[$min] > $arr[$j]) { $min = $j; } echo $arr[$j].'(k:'.$j.')
'; } // 输出每次找到的最小值 echo '内层排序得到的最小值 k:'.$min.'--val:'.$arr[$min].'

'; // 5、当前值与最小值交换位置 if ($min != $i) { $temp = $arr[$i]; $arr[$i] = $arr[$min]; $arr[$min] = $temp; } // 输出每次排序插入数据的值 echo '第'.($i+1).'圈的结果:'.json_encode($arr).'


';}echo json_encode($arr);

输出的结果:

---------------------------------------------------------------------------------------------------------------------------------

源数组:[3,4,2,8,9,1,6]

第1次的min值:3
内层输出:
4(k:1)
2(k:2)
8(k:3)
9(k:4)
1(k:5)
6(k:6)
内层排序得到的最小值 k:5--val:1

第1圈的结果:[1,4,2,8,9,3,6]


第2次的min值:4
内层输出:
2(k:2)
8(k:3)
9(k:4)
3(k:5)
6(k:6)
内层排序得到的最小值 k:2--val:2

第2圈的结果:[1,2,4,8,9,3,6]


第3次的min值:4
内层输出:
8(k:3)
9(k:4)
3(k:5)
6(k:6)
内层排序得到的最小值 k:5--val:3

第3圈的结果:[1,2,3,8,9,4,6]


第4次的min值:8
内层输出:
9(k:4)
4(k:5)
6(k:6)
内层排序得到的最小值 k:5--val:4

第4圈的结果:[1,2,3,4,9,8,6]


第5次的min值:9
内层输出:
8(k:5)
6(k:6)
内层排序得到的最小值 k:6--val:6

第5圈的结果:[1,2,3,4,6,8,9]


第6次的min值:8
内层输出:
9(k:6)
内层排序得到的最小值 k:5--val:8

第6圈的结果:[1,2,3,4,6,8,9]


第7次的min值:9
内层输出:
内层排序得到的最小值 k:6--val:9

第7圈的结果:[1,2,3,4,6,8,9]


结果:[1,2,3,4,6,8,9]

---------------------------------------------------------------------------------------------------------------------------------

以前对于选择算法,就是囫囵吞枣的理解,可今天当这样,将每次遍历的结果,都打印出来的时候,所有的一切都清明了。

理解也更深一层了!

记录一下。

来源地址:https://blog.csdn.net/LDR1109/article/details/130423720

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯