假设现在数组的状态是
a[0] a[1] a[2] a[3] a[4] a[5] a[6]]
12 15 52 24 17 9 36
数组中含有7个元素,(从a[0]~a[6])
(按降序来说)选择法排序就是把最大的元素放在第一个位置,把第二大的元素排在第二个位置,第三个的元素放在第三个位置...最小的元素在最后面。
这两个for循环可以这么理解:
外层的for循环中的i指的是是需要放置当前最大值的位置,如果有7个元素,那么我们只需要把前六个元素排好序,那么最后一个就是最小的了(因为在设置倒数第二个元素的时候我们是把倒数第二个和倒数第一个元素比较后把较小值放在后面的,因此只需要对前6个位置设置,最后一个位置在完成整个循环的时候已经是最小值了),因此i的循环范围是0~5 (即i=0;i<7-1)
内层for循环的意思是,把从i+1开始的所有元素进行比较,如果有比i所在的位置大的元素就把他和i的位置的数值调换,此时a[i]存放的是已经比较过的较大值,当内层循环结束后,a[i]存放的就是这一轮的最大值了。因此j的范围是j=i+1;j<7