java选择排序中a[min]在“交换”后等于什么?java的选择排序中的一个细节--a[min]== 下面的代码是错的.因为我把“交换”写到第2个for里面了.就是这样,疑惑来了.举例说明疑惑:当i=0;j=1,通过if,min=
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 02:04:15
java选择排序中a[min]在“交换”后等于什么?java的选择排序中的一个细节--a[min]== 下面的代码是错的.因为我把“交换”写到第2个for里面了.就是这样,疑惑来了.举例说明疑惑:当i=0;j=1,通过if,min=
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]在“交换”后等于什么?java的选择排序中的一个细节--a[min]== 下面的代码是错的.因为我把“交换”写到第2个for里面了.就是这样,疑惑来了.举例说明疑惑:当i=0;j=1,通过if,min=
.. 因为你比较的时候用的a[min]和a[j],j层每次循环,如果>成立,则min被重新复制,可是你temp赋值只针对a[i],所以挂B了 止于这个¥,真心不明白怎么来的.、.