刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行升序排序,于是他编写了“选择排序”程序,在调试程序的过程,他故意将循环的次数改成了固定值,如下图所示。请问,现在这个程序执行之后print(arr)打印出的结果应该是?

A
[5, 7, 21, 33, 39, 43, 67, 73]
B
[5, 7, 21, 33, 39, 73, 43,67]
C
[5, 7, 21, 67, 39, 73, 33, 43]
D
[5, 7, 21, 33, 39, 73, 67, 43]
使用微信搜索喵呜刷题,轻松应对考试!

答案:

D

解析:

【喵呜刷题小喵解析】选择排序的基本思想是每次从未排序部分找出最小(或最大)的元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。根据题目,小明编写的选择排序程序在调试过程中,故意将循环的次数改成了固定值,这可能导致排序过程提前结束,导致排序结果不正确。对于列表arr = [5, 33, 21, 67, 39, 73, 7, 43],正确的选择排序过程应该是:1. 从未排序部分找到最小的元素5,放到已排序部分的开头,此时已排序部分为[5],未排序部分为[33, 21, 67, 39, 73, 7, 43]。2. 从未排序部分找到最小的元素7,放到已排序部分的末尾,此时已排序部分为[5, 7],未排序部分为[33, 21, 67, 39, 73, 43]。3. 从未排序部分找到最小的元素21,放到已排序部分的末尾,此时已排序部分为[5, 7, 21],未排序部分为[33, 67, 39, 73, 43]。4. 从未排序部分找到最小的元素33,放到已排序部分的末尾,此时已排序部分为[5, 7, 21, 33],未排序部分为[67, 39, 73, 43]。5. 从未排序部分找到最小的元素39,放到已排序部分的末尾,此时已排序部分为[5, 7, 21, 33, 39],未排序部分为[67, 73, 43]。6. 从未排序部分找到最小的元素43,放到已排序部分的末尾,此时已排序部分为[5, 7, 21, 33, 39, 43],未排序部分为[67, 73]。7. 从未排序部分找到最小的元素67,放到已排序部分的末尾,此时已排序部分为[5, 7, 21, 33, 39, 43, 67],未排序部分为[73]。8. 从未排序部分找到最小的元素73,放到已排序部分的末尾,此时已排序部分为[5, 7, 21, 33, 39, 43, 67, 73],未排序部分为[]。因此,正确的排序结果应该是[5, 7, 21, 33, 39, 43, 67, 73]。而题目中给出的选项A、B、C都与正确的排序结果不符,只有选项D与正确的排序结果一致,因此答案是D。
创作类型:
原创

本文链接:小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行升

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share