插入排序 (Java实现)

  该算法是假设已有序列是有序序列,

  从首元素(首元素为单个元素,肯定是有序的...)开始分析,对其他元素的位置进行有序的确定;

   

 排序算法

 1 public class InsertionSort {
 2     public static void insertionSort(int a[]) { 
 3     
 4      int i,j,key,n=a.length;       
 5      for(j=1;j<n;j++){             
 6          key=a[j];                 //key<-a[j]
 7          i=j-1;                    //i=j-1表示从当前有序数组最后一个元素开始算
 8          while(i>=0&&a[i]>key){    
 9              //当还未到达数组的起始并且当前元素大于要插入的数key,则i值与后一位进行交换,并且i值减小
10              //这可以保证大于key的所有元素依次向末尾方向移动一位
11              //保证,key到达的位置前面没有大于key的元素,后面也没有小于key
12              //这就是插入排序算法的思想
13              a[i+1]=a[i];
14              i--;
15          }
16          a[i+1]=key;
17      }
18     }
19 }

  

posted on 2018-09-11 09:57  zhishiyv  阅读(653)  评论(0编辑  收藏  举报

导航