java中 排序算法是经常会遇到的,回顾一下
(一)直接插入排序
直接插入排序: 就是把新的数据插入到已经排好的数据列中
1、原理
1、将第一个数和第二个数排序,然后构成一个有序序列
2、将第三个数插入进去,构成一个新的有序序列。
3、对第四个数、第五个数……直到最后一个数,重复第二步。
2、过程
3、代码实现
java实现
public class InsertSort {
/* 直接插入排序(默认从小到大排序) */
public static void sort2(int[] arr) {
// 数组总长度
int n = arr.length;
// 当前要插入的数
int insertNum;
for (int i = 1; i < n ; i++) {
insertNum = arr[i];// 当前要插入的数
int j = i;
// 如果要插入的数小于前面的数,则前面的数往后移;否则就结束本次插入(因为前面的数都是有序)
for (j = i; j > 0 && insertNum < arr[j - 1]; j--) {
arr[j] = arr[j - 1];
}
arr[j] = insertNum; // 空出来的数
}
}