美文网首页
插入排序之“直接插入排序”(C++实现)

插入排序之“直接插入排序”(C++实现)

作者: cysAAAA | 来源:发表于2019-03-30 11:33 被阅读0次

    直接插入排序:分有序区和无序区,初始时有序区只有一个元素,然后从无序区选第一个数跟无序区进行比较并插入到合适的为止。

    下面直接附上代码
    void insertSort(int R[], int n)
    {
        int i, j, tmp;
        for (i = 1; i < n; i++)
        {
            if (R[i] < R[i - 1])
            {
                tmp = R[i];
                j = i - 1;
                do//找到R[i]的插入位置
                {
                    R[j + 1] = R[j];//将大于R[i]的元素后移
                    j--;
                } while (j >= 0 && R[j] > tmp);
                R[j + 1] = tmp;
            }
        }
    }
    
    测试
    int main()
    {
        int R[] = { 4,5,9,8,2,1,0,44 };
        insertSort(R, 8);//第一个参数为待排序数组,第二个参数为数组长度
        for (int i = 0; i < 8; i++)
        {
            cout << R[i] << " ";
        }
    }
    

    相关文章

      网友评论

          本文标题:插入排序之“直接插入排序”(C++实现)

          本文链接:https://www.haomeiwen.com/subject/lmcjbqtx.html