解题思路:
所谓选择法就是先将10个数中最小的数与a[0]对换;再将a[1]~a[9]中最小的数与a[1]对换……每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。可以用数组名作函数参数,此时实参与形参都用数组名(也可以用指针变量)。
编写程序:
运行结果:
程序分析:
可以看到,调用函数"select_sort(a,10);"之前和之后,a数组中各元素的值是不同的。原来是无序的,执行"select_sort(a,10);"后,a数组已经排好序了,这是由于形参数组array已用选择法进行排序了,形参数组改变也使实参数组随之改变。
在执行 select_sort 函数中的for循环时,当i为0时,将array[0]与array[1]-array[9]比较,只要发现某一个数组元素array[j]的值大于array[0],就将它的下标j存放在变量k中,执行完内循环(j循环)后,k中存放的是array[1]-array[9]中最大数的下标,然后将该元素与array[0]对换。当执行第2次外循环时,i等于1,将array[1]与array[2]~array[9]比较,最后将