排序算法:插入排序

插入排序的思路为: 每一步都将一个待排序的元素插入到排好序的数组中的相应位置,知道所有元素都插入完为止。如下图所示:

代码如下:

void sort_insert(int arr[], int len)
{
    int i, j;
    int temp = 0;

    for(i = 1; i < len; i++)
    {
        temp = arr[i]; //取出一个元素
        //取出的元素和其前面的元素相比较
        for(j = i; j > 0 && temp < arr[j - 1]; j--)
        {
            //如果前面的元素较大,则后移一位
            if(temp < arr[j - 1])
            {
                arr[j] = arr[j - 1];
            }
        }
        //取出的元素填充到前面的元素空位
        arr[j] = temp;
    }
}

int arr[]={2,4,1,0,1};
int len= (sizeof(arr) / sizeof(int));
sort_insert(arr,len);

图片引用 http://www.cnblogs.com/chengxiao/p/6103002.html