依次将待排序的数据元素按其关键字大小插入到前面的有序序列
第1趟:将第2个元素插入到前面的有序序列中,此时前面就只有一个元素,是有序的;
第2趟:将第3个元素插入到前面的有序序列;
.......
第n-1趟:将第n-1个元素插入到前面的有序序列。
public void insertSort(int[] array)
{
if(array == null || array.length == 0)
{
return;
}
for (int i = 1; i < array.length; i++)
{
int temp = array[i];
//如果当前数据小于它前一个数据,依次向前直到有个数小于它,插到那个数的后面
if(array[i] < array[i-1])
{
int j = i-1;
//依次把前面比当前元素大的数后移,插到第一个比它小的数后面
for (; j >= 0 && array[j] > temp; j--)
{
array[j+1] = array[j];
}
array[j+1] = temp;
}
}