marcus.x的博客

插入排序 - C语言

插入排序的思想:

以现有的已排序元素为基础,下一个元素添加到正确的位置,则最终会完成排序。

第一个元素本身是已经排序好的。从第二个开始排。

void insertSort(int arr[], int N)
{
    int tmp, j;
    for(int i= 1; i < N ; i++)
    {
        tmp = arr[i];
        for(j=i; j>0 && arr[j-1] > tmp ;j--)
        {
            arr[j] = arr[j-1];
        }
        arr[j] = tmp;
    }
}

int main()
{
        int test[10] = {1, 13, 8, 99, 10, 29, 9, 0, 19, 5};
        insertSort(test, 10);
        return 0;    
}

好,来分析一下代码。

首先,拿起来一个元素,从第二个开始。
对已排序的队列从后向前检查,只要没到头并且检查的数比它大就继续向前找,并且这些比它大的向后移动一个位置。
找到了,那么就将它放在现在这个位置,因为比它大的都后移动了。

posted on 2015-05-21 06:49  marcus.x  阅读(177)  评论(0编辑  收藏  举报

导航