思想:
每次将待排序的数插入到已排序的合适位置。使整个序列有序。
举例:
每次将一个数字插入到有序数列中,直到所有的序列是有序的
比如对于无序序列『4,6,8,5,9』来说
代码:
#include<vector>
#include<iostream>
using namespace std;
void insertSort(vector<int>&nums,int length)
{
int temp;
int i,j;
for(i=0;i<length;i++)
{
temp=nums[i];
for(j=i-1;j>=0&&nums[j]>temp;j--)
{
swap(nums[j],nums[j+1]);
}
}
}
测试代码:
int main()
{
vector<int> arr = { 4,6,8,5,9 };
cout << "排序前:" << endl;
for (int i = 0; i < arr.size(); i++)
{
cout << arr[i] << " ";
}
cout << endl;
insertSort(arr, arr.size());
cout << "排序后:" << endl;
for (int i = 0; i < arr.size(); i++)
{
cout << arr[i] << " ";
}
return 0;
}