数据结构与算法(18): 排序- 选择排序

  选择排序的基本思想:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
  时间复杂度:O($N^{2}$)。
  选择排序是稳定的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* 选择排序:从大到小
*/
public class SelectSort extends Sort {
public static void sort(int[] a){
for (int i = 0; i < a.length - 1; i++){
int max = i;
for (int j = i+1; j < a.length; j++){
if (a[j] > a[max]){
max = j;
}
}
swap(a, i, max);
System.out.println("------第"+(i+1)+"趟-------");
print(a);
}
}
}

感谢:http://www.cnblogs.com/skywang12345/p/3597641.html