首页 > 代码库 > 排序算法

排序算法

插入排序

直接插入排序

基本思路:将一个记录插入到已排序好的有序表中,从而得到一个新的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

技术分享

void InsertSort(int a[])  {  
    for(int i = 1; i < a.length; i++){  
        if(a[i] < a[i-1]){       //若小于则移动表后插入,大于则不做处理,即等于直接插入。
            int j = i-1;       
            int x = a[i];        //存储待排序元素  
            a[i] = a[i-1];       //后移一个元素  
            while(j>=0 && x < a[j]){     //查找在有序表的插入位置  
                a[j+1] = a[j];  
                j--;         //元素后移  
            }  
            a[j+1] = x;      //插入到正确位置  
        }  
    }  
}  

 

排序算法