对第一个for循环内容比较疑惑,为什么要把i赋给k,而不可以直接用i,a[k]=t为什么不能写成a[j]=t?

img

把i赋给k是因为在后面先要对k进行变化,而再之后又要用到初始时候的i,a[k]=t不能替换为a[j]=t是因为for中的j++最后要执行一次但是不进入内部所以此时k要比j小1

选择排序法,参考:

因为k会随着内层的for变化啊,如果没进内层的for,那么此时k = i,是可以直接用的,如果进了内层的for,有可能k = i,也有可能k = j,所以必须要有k存在。

k是用来记录i后的最小值的下标,直接用i就会有两个地方修改i的值,if里面和i++,肯定不对,如果使用a[j] = t,由于这个交换是在第二个for循环结束后才进行,j一定等于8,a[j]就是a[8]就错了