选择排序和冒泡排序有一点点像,选择排序是默认前面都是已经排序好的,然后从后面选择最小的放在前面排序好的的后面,首先第一轮循环的时候默认的排序好的为空,然后从后面选择最小的放到数组的第一个位置,第二轮循环的时候默认第一个元素是已经排序好的,然后从剩下的找出最小的放到数组的第二个位置,第三轮循环的时候默认前两个都是已经排序好的,然后再从剩下的选择一个最小的放到数组的第三个位置,以此类推。下面看一下代码。
我们看到每轮循环的时候并没有直接交换,而是从他后面的序列中找到最小的记录一下他的index索引,最后再交换,下面看一下他的递归是怎么实现的。
代码也很好理解,这里的swap是交换两个数据,我换了种写法,和上面的交换写法不太一样,但其实实现的功能都是一样的。