插入排序

Posted lvvly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序相关的知识,希望对你有一定的参考价值。

对于少量元素的排序,插入排序是一个有效的算法。插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后我们每次从桌上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手上的牌总是排序好的。

#include <iostream>
#include <vector>
using namespace std;

vector<int> insert(vector<int>& nums);

int main()
{
    vector<int> nums;
    nums.push_back(3);
    nums.push_back(44);
    nums.push_back(38);
    nums.push_back(5);
    nums.push_back(47);
    nums.push_back(15);
    nums.push_back(36);
    nums.push_back(26);
    nums.push_back(27);
    nums.push_back(2);
    nums.push_back(46);
    nums.push_back(4);
    nums.push_back(19);
    nums.push_back(50);
    nums.push_back(48);
    insert(nums);
    int size=nums.size();
    for(int i=0;i<size;i++)
        cout<<nums[i]<<endl;
    return 0;
}

vector<int> insert(vector<int>& nums)
{
    int size=nums.size();
    for(int i=1;i<size;i++)
    {
        int temp=nums[i];
        for(int n=i-1,m=i;n>=0;n--,m--)
        {
            if(temp>=nums[n])
            {
                nums[n+1]=temp;
                break;
            }
            else
            {
                nums[m]=nums[n];
                if(n==0)
                    nums[n]=temp;
            }

        }
    }
    return nums;
}

 

以上是关于插入排序的主要内容,如果未能解决你的问题,请参考以下文章

KDoc:插入代码片段

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?

将代码片段插入数据库并在 textarea 中以相同方式显示

关于在各浏览器中插入音频文件的html代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段