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