原理:
- 将序列分为两组,左端为第一组,右端为第二组
- 将第二组的第一个元素与第一组的元素比较,若遇到比它大的元素则swap
- 迭代进行第二步
图解:
代码:
#include <iostream>
#include <algorithm>
using namespace std;
void Insert_sort(int* a, int left, int right)
{
for (int i = left+1; i <= right; ++i)
{
for (int j = left; j < i; ++j)
{
if (a[i] < a[j])
std::swap(a[i], a[j]);
}
}
}
int main(int argc, char** argv)
{
int a[5] = { 2,4,1,3,5 };
Insert_sort(a, 0, 4);
for (int i = 0; i <= 4; ++i)
cout << a[i] << " ";
return 0;
}