1、算法思想:
第一步:将序列分为已排序和未排序两部分,第一次是第一个元素为已排序
第二步:从未排序的序列中取第一个与已排序的序列从后往前依次进行比较,找到合适的位置插入
第三步:重复第二步直到将未排序的序列元素全部排序完毕
2、动图演示(动图来源菜鸟教程)
代码实现:
public class InsertSort {
public static void main(String[] args) {
int[] arr = {22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70};
int[] ans = insertSort(arr);
for(int i : ans) {
System.out.print(i + " ");
}
}
private static int[] insertSort(int[] arr) {
for(int i = 0; i < arr.length; i++) {
int t = arr[i];
int j = i;
while(j > 0 && t < arr[j - 1]) {
arr[j] = arr[j - 1];
j--;
}
if(j != i) {
arr[j] = t;
}
}
return arr;
}
}
运行结果:3 5 9 22 32 34 35 37 50 55 64 70 82 89