直接选择排序算法问题

发布网友 发布时间:2022-04-27 12:44

我来回答

3个回答

热心网友 时间:2022-05-22 02:30

所谓的直接选择排序,就好像玩扑克牌的时候,你一张一张把把从小到大选出,插入到手上是一样的。m用来记录剩下来未排序的数其中最小那一个的下标。
判不判断无所谓,但是条件语句里面的东西是必须的!
加判断是因为当当前位置不是未排序的数的最小那个时,应该把当前位置那那个未排序的最小值交换啦。但事实上,只需要条件语句里面的交换语句留下就可以了。

热心网友 时间:2022-05-22 03:48

加不加都一样,加这个语句,上面的for循环后R[m]是最小的了,如果R[i]不是最小的, 即m!=i,所以要交换,交换后R[i]最小,如果R[i]本是最小的,通过if(m!=i) 语句可以不执行直接执行下面的语句,不执行交换的

热心网友 时间:2022-05-22 05:22

可以。
如果m与i相等,交换的是i本身,也就是i与i换,换完了,还是原样!
所以,这个判断不加也可以,但是从程序的效率上讲,还是加上吧!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com