**【算法步骤】
- 设待排序的记录存放在r[1···n]中。第一趟从r[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为r[k],交换r[1]和r[k]。
- 从第二趟r[2]开始,通过n-2次比较,从n-1个记录中选出关键字最小的记录,记为r[k],交换r[2]和r[k]。
- 以此类推,从第二趟r[i]开始,通过n-i次比较,从n-i+1个记录中选出关键字最小的记录,记为r[k],交换r[i和r[k]。
- 经过n-1趟,排序完成。**
算法空间复杂度:O(1),时间复杂度O(n*n)
案例:
对于给定的一组关键字序列{26,18,60,65,45,13,32},写出使用直接选择排序方法将其排成升序序列的过程。
解:
初始关键字:26,18,60,65,45,13,32
一趟排序后:13,18,60,65,45,26,32
二趟排序后:13,18,60,65,45,26,32
三趟排序后:13,18,26,65,45,60,32
四趟排序后:13,18,26,32,65,45,60
五趟排序后:13,18,26,32,45,65,60
六趟排序后:13,18,26,32,45,60,65