插入排序的思想是,前面部分为有序数组,后面无序数组中的元素,依次插入到前面的有序数组中。因此,实现为,从数组中第二个元素开始,依次插入到前面的数组中。需要做的工作时,有序数组中插入点及其后面的数据,需要后移一位,然后把数据,插入到插入点。
@Override
public void sort(int[] data) {
// TODO Auto-generated method stub
for(int i=1; i<data.length; i++){
int currentValue = data[i];
int postion = i;
for(int j=i-1; j>=0; j--){
if(data[j] > currentValue){
//比当前元素大的值,往后移
data[j+1] = data[j];
postion--;
}else{
//找到了要插入的位置
break;
}
}
data[postion] = currentValue;
}
}