码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序

时间:2018-05-22 20:45:11      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:pac   插入   insert   back   nbsp   name   cto   bsp   space   

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

#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;
}

 

插入排序

标签:pac   插入   insert   back   nbsp   name   cto   bsp   space   

原文地址:https://www.cnblogs.com/LVVLY/p/9073360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!