Bootstrap

插入排序算法

数据结构课程中的插入排序算法:本篇文章主要记录总结三种简单常见的插入排序算法(直接插入排序,折半插入排序,希尔排序)的基本思想和简单实现。

插入排序:

在排序算法中,数据结构课程中常见的三种插入排序算法是:直接插入排序折半插入排序希尔排序。插入排序算法的基本思想是:从给定的一个关键字序列中,每排序一趟就将一个待排序的元素,按照其关键字值的大小插入到已经排好序的部分文件中,直到全部值都插入完成,排序结束;其中,不同的插入排序方法,建立第一个排好序的部分文件的方法不同。插入排序与初始数据序列顺序有关,当初始序列越接近正序,性能越好。

下面依次介绍这三种插入排序:

1、直接插入排序

思想:最简单的排序方法,对于给定的一个关键字序列,将它的第一个元素作为一个排好序的部分文件,然后将后面的元素一个个的按照关键字大小插入到这个序列中,插入完毕之后排序结束;在指定元素插入到部分有序文件时,先对文件进行查找,找到元素应该插入的位置,然后将元素插入其中。

用C/C++实现的对含n个元素的一维数组的排序算法如下:

//直接插入排序
void InsertSort1(int a[],int n)
{
        int i,j,temp;
        //从第二个元素开始插入
        for(i=1;i<n;i++)
        {
                temp=a[i];
      
;