作业帮 > 综合 > 作业

java选择排序中a[min]在“交换”后等于什么?

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/30 02:08:10
java选择排序中a[min]在“交换”后等于什么?
java的选择排序中的一个细节--a[min]==
下面的代码是错的.因为我把“交换”写到第2个for里面了.就是这样,疑惑来了.

举例说明疑惑:当i=0;j=1,通过if,min=j,即min=1 ,此时,a[min]=13.
关键是:第一次交换后,a[min]=?如果a[min]=13,那么不是与交换中的a[min]=a[i](21)矛盾吗?
                               如果a[min]=21,那么就不会出现"¥"了(应该是13,7,67,21,20,19).
                         
关于怎么写才对,我已经知道了.我专门这样写,是想弄明白:min既然代表下标,下标是不会被交换的,那么在第一次交换后,a[min]==21.但这样,就不会出现"¥"了(因为根据if(a[min]>a[j]),只有a[min]==13,才与后面的7交换,出"¥".)
代码:

结果

java选择排序中a[min]在“交换”后等于什么?
.. 因为你比较的时候用的a[min]和a[j],j层每次循环,如果>成立,则min被重新复制,可是你temp赋值只针对a[i],所以挂B了 止于这个¥,真心不明白怎么来的.、.