2. 选择排序
2.1 简单选择排序
简单选择排序的主要思想是,对第i个元素,将其与后面的n-i个元素作比较,用一个min变量存储这n-i+1个元素中的最小值的位置,比较完后将a[min]和a[i]交换(min != i)。简单选择排序进行了(n^2)/2次比较,n次交换,交换的次数少。
其主要过程如图所示:
简单选择排序时间、空间复杂度、稳定性、适用场合如下:
从适用场合看到,虽然在基本的三个排序算法中,性能通常为:直接插入>冒泡>简单选择,但由于简单选择排序所需交换次数少,对于移动会花很大代价的场合,反而可以成为一种待选方案。