4.插入排序
算法描述:—先向后移,在插入,O(n^2),稳定
- 从第一个元素开始,该元素可以被认为已经排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果该元素(已排序)大于新元素,将该元素移到下一个位置
- 重复步骤3,直到找到已排序的元素小于或等于新元素的位置
- 将元素插入到该位置后,重复2~5
//插入排序
public static int[] insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];//保存每次要插入的数
for (int j = i; j > 0; j--) {//内层控制从后向前扫描
if (arr[j-1] > temp) {//判断如果插入的数比排好序中的数小,就插在这个数前面
arr[j] = arr[j - 1];//将这个数后移一位
}
}
arr[i] = temp;//将保存的要插入的数,放在对应的位置
}
return arr;
}