刚开始看到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)。


 

 

相关文章:

  • 2021-08-20
  • 2022-01-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-26
  • 2021-10-25
  • 2021-08-10
猜你喜欢
  • 2021-06-07
  • 2021-07-20
  • 2022-03-08
  • 2022-12-23
  • 2021-09-25
  • 2022-12-23
相关资源
相似解决方案