定义
排序就是根据某一个标准,对某一组内容进行某一种规定进行顺序排列。
分类
顺序排序
使用一对嵌套循环进行排序, n 2 n^2 n2的时间复杂度。
- 选择排序
- 插入排序
- 冒泡排序
对数排序
- 快速排序
- 归并排序
选择排序
通过反复将某一特定的值放到它在列表中的最终已排序位置。
选择排序策略
- 扫描整个列表,找到最小值。
- 最小值放到第一位
- 扫描除了第一个值的其他值,找到最小值。
- 最小值放到第二位
- 以此类推
选择排序代码实现
/**
* data 待排序列表
* min 从0开始
* index < data.length - 1 最后一位没有待比较数
* data[scan].compareTo(data[min] < 0) 后一位和前一位比较,是否小于前一位
* 第二层for循环主要是找到最小值,然后互换
*/
public static <T extends Comparable<? super T>> void selectionSort(T[] data){
int min;
T temp;
for(int index =