算法面经--直接插入排序
2020-06-12 本文已影响0人
永不熄灭的火焰_e306
直接插入排序
一、算法思路与介绍
插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从序无表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
![](https://img.haomeiwen.com/i18653827/a0d67d67d5724831.png)
二、算法实现
public static void insertSort(int[] arr){
int insertValue = 0; //待插入的数
int insertIndex = 0; //待插入的索引下标
for(int i =1;i<arr.length;i++){
//定义待插入的数
insertValue = arr[i];
insertIndex = i-1;
while(insertIndex>=0 && insertValue<arr[insertIndex]){
arr[insertIndex + 1] = arr[insertIndex]; //后移
insertIndex --;
}
if(insertIndex +1 !=i){
arr[insertIndex +1]=insertValue;
}
}
}