插入排序
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
算法步骤:
将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
public static void InsertSort(int[] data) {
if(data==null||data.length<2){
return ;
}
for (int i = 1; i < data.length; i++) {
//记录当前的值
int currentValue = data[i];
for (int j = i-1; j >=0; j--) {
if(data[j]>currentValue){
//如果当前索引的值大于比较值,数组元素后移
data[j+1]=data[j];
}else{
break;
}
data[j]=currentValue;
}
}
}