简单选择排序算法(Simple Selection Sort)是一种简单直观的选择排序算法.
它的基本操作是:
算法动图演示如下:
算法实现步骤:(以升序为例)
清楚了实现步骤后,代码的实现就比较简单了,代码如下:
我们在设计简单选择排序时,思路往往都是每趟循环选出一个最大或最小的将其放在相应位置上,那么其实我们可不可以一趟直接将最大和最小的两个元素都选出来呢?
依照这个思路,我们对简单选择排序进行优化,使其一趟就可以将最大的元素和最小的元素都选出来交换到相应的位置上,综上,代码实现如下:
注意: 当我们在一趟比较结束后选出mini和maxi并做交换的时候,要小心如果left记录的位置恰好存放的是maxi,则第一步交换left和mini后我们就要重新对maxi的位置做一个修正,如图: