1 /************************************************************************/
2 /*
3 直接选择排序:
4 基本思想:最简单一种排序方法,如果在确定 i(0<=i<=n-1)位置上元素,在i+1,n-1的位置上找出最小的,和i位置上交换
5 分析:时间复杂度:最好,最坏都是O(n^2),空间复杂度(无),稳定性(稳定)
6 */
7 /************************************************************************/
8 #include "adt.h"
9 template<typename T> void select_sort(T list[],int n)
10 {
11 for (int i=0;i<n;i++)
12 {
13 //找出i-n的最小元素小标
14 int index=i;
15 for (int j=i+1;j<n;j++)
16 if (list[j]<list[index])
17 index=j;
18 if (index!=i)
19 {
20 //交换
21 T temp=list[i];
22 list[i]=list[index];
23 list[index]=temp;
24 }
25 }
26 }