插入类排序是将某个数据插入到已经排好的列表中,直接插入排序比较简单。
升序排序:
/**
* 直接插入排序
* 升序排列
*/
@Override
public <T extends Comparable<? super T>> void sortByAsc(T[] data) {
for(int i = 1; i < data.length ; i++){
/**查找i的位置*/
for(int j = i; j > 0 ; j--){
/**每一次小于就交换*/
if(data[j].compareTo(data[j - 1]) < 0){
T temp = data[j];
data[j] = data[j - 1];
data[j - 1] = temp;
}
}
}
}
降序排序:
/**
* 直接插入排序
* 降序排列
*/
@Override
public <T extends Comparable<? super T>> void sortByDesc(T[] data) {
for(int i = 1; i < data.length ; i++){
/**查找i的位置*/
for(int j = i; j >0 ; j--){
/**每一次小于就交换*/
if(data[j].compareTo(data[j - 1]) > 0){
T temp = data[j];
data[j] = data[j - 1];
data[j - 1] = temp;
}
}
}
}