选择排序和直接插入排序有时候比较容易混淆,选择排序是每步从需要排序的记录里面选出关键字最小的记录,按照顺序放在已经排序的记录序列里面,直到全部排完为止。
它的关键字的比较次数与各元素原来的排列顺序无关,:第一次选择(i=0)比较n-1次,第二次选择比较n-2次,依此类推。但是元素的移动次数与初始排列顺序有关:如果R[0..n-1]原来就是从小到大排列,则不需要移动;但是如果每次都要进行交换,移动最大的次数达到最大值,即3(n-1)次。因此算法的执行时间为O(n^2)。
源代码如下:
直接选择排序是不稳定的。