algorithm ch2 insertsort

刚开始看到insertsort,思路就是使用新来的元素与前述已经排好序的元素比较。然后进行插入或者跳到下一次比较。

实现的代码如下:

void InsertSort(int *pArray, int iSortNum)
{
    int *pTemp = pArray;
    int iLoop = 0;
    int jLoop = 1;

    for(; jLoop != iSortNum ; ++jLoop)
    {
        int x = pTemp[jLoop];
        iLoop = jLoop - 1;
        while(pArray[iLoop] >x && iLoop>=0)
        {
            pArray[iLoop+1] = pArray[iLoop];
            --iLoop;
        }
        pArray[iLoop+1] = x;

    }
}

这种排序跟冒泡法时间复杂度都是o(n^2),属于就地排序,空间复杂度o(1)。


 

 

posted @ 2015-03-20 16:54  BestWangJie  阅读(102)  评论(0编辑  收藏  举报