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

单选题

小明为了学习选择排序的算法,编写了下面的代码。针对代码中红色文字所示的**一、二、三**处,下面说法正确的是?( ) a = [8,4,11,3,9] count = len(a) for i in range(count-1): mi = i for j in range(i+1,count): if a[mi] > a[j]: #代码一 mi = j #代码二 if i!=mi: ​ a[mi],a[i] = a[i],a[mi] #代码三 print(a)

A
如果找到更大的元素,则记录它的索引号。
B
如果找到更小的元素,则记录它的索引号。
C
在一趟选择排序后,不管是否找到更小的元素,mi所在元素都得与i所在的元素发生交换。
D
代码三所在的行必然要运行。
使用微信搜索喵呜刷题,轻松应对考试!

答案:

B

解析:

【喵呜刷题小喵解析】在选择排序算法中,目的是通过每次从未排序的元素中选取最小(或最大)的一个元素,与已排序序列的末尾元素进行交换,使得已排序序列长度+1。在给出的代码中,对于每一趟排序,通过内层循环找到未排序部分的最小元素的索引,即mi。当内层循环结束后,如果i不等于mi,说明找到了更小的元素,则需要进行交换。因此,当代码执行到"代码三"所在行时,mi的值代表的是当前未排序部分的最小元素的索引。A选项表示"如果找到更大的元素,则记录它的索引号",这与选择排序的原理不符,因为选择排序是找最小(或最大)元素,而不是最大元素。C选项表示"在一趟选择排序后,不管是否找到更小的元素,mi所在元素都得与i所在的元素发生交换",这是错误的,只有当i不等于mi时,才需要进行交换。D选项表示"代码三所在的行必然要运行",这也是错误的,只有当i不等于mi时,才需要执行代码三所在的行。因此,正确答案是B选项,即"如果找到更小的元素,则记录它的索引号"。
创作类型:
原创

本文链接:小明为了学习选择排序的算法,编写了下面的代码。针对代码中红色文字所示的**一、二、三**处,下面说法

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

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

分享考题
share