插入排序
插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有
序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排
序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表
思路图
代码实现
package com.sort;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
//插入排序 将原始数组模拟成一个有序 数组和一个无序数组 让无序数组的
//头位置与有序数组作比较 找到要添加的位置
public class InsertionSorting {
public static void main(String[] args) {
int[] array={1,5,3,6,0,10,2,9,7};
sort(array);
System.out.println(Arrays.toString(array));
}
public static void sort(int[] array){
for (int i = 1; i <array.length ; i++) {
int value=array[i];
int a=i-1;
//注意这里a>=0 要写在前面,因为如果a<0
// 先判断数组对应的值会有ArrayIndexOutOfBoundsException异常
while (a>=0&&value<array[a]){
array[a+1]=array[a];
a--;
}
array[a+1]=value;
}
}
}