插入排序(java实现)
一、插入排序简明介绍(从小到大)
- 插入排序算法思想
插入排序的时间复杂度为O(n2),所以插入排序是比较稳定的排序方法。
插入排序就是将一组无序的 int 类型数组进行排序,此次以从小到大排序为例。
核心:
int[] array = {};
核心
把n个待排序的元素看作一个有序表和一个无序表,从array[0]开始,此时有序表中只有array[0]一个元素,无序表中有n-1个元素,即array[1]—array[n-1]之间,排序过程中每一次从无序表中取出第一个元素,将它与有序表里的元素依次按下标从大到小依次比较,进而插入到合适的地方。
-
算法过程
-
动态图
二、代码实现
插入排序 方法实现
public static void insertSort(int[] array){
for (int i = 1; i < array.length; i++) {
int inValue = array[i];
int inIndex = i-1;
while(inIndex>=0 && inValue<array[inIndex]){
array[inIndex+1] =array[inIndex];
inIndex--;
}
array[inIndex+1] = inValue;
}
}
测试
public static void main(String[] args) {
int[] array={
3,9,-1,10,20,30,45,22,-6,-12};
System.out.println("排序前");
System.out.println(Arrays.toString(array));
inSort(array);
System.out.println("排序后");
System.out.println(Arrays.toString(array));
}
测试结果