算法步骤:
1.从第一个元素开始,该元素可以认为已经被排序
2.取出下一个元素a,在已经排序的元素序列中从后向前扫描
3.如果已排序中的元素b大于a,则将元素b后移一个位置
4.重复步骤3,直到找到已排序的元素x小于或者等于元素a
5.将元素a插入到x的后面
6.重复步骤2~5
- public static void insertionSort(Integer[] array){
- for(int i=1;i<array.length;i++){
- //待插入的数据
- Integer toBeInsertedValue = array[i];
- int j;
- for(j=i;j>0;j--){
- if(array[j-1]>toBeInsertedValue){
- //将比toBeInsertedValue大的元素全部后移
- array[j]=array[j-1];
- continue;
- }
- break;
- }
- //插入新元素
- array[j]=toBeInsertedValue;
- }
- }