#include <vector>
//插入排序
//如果从小大排序
//每次都将大的数后移,直到前面的数比那个要移动的数小为止
//例子
// 5 4 3 2 1
//从小到大排列
//5 4 3 2 1 -> 5 5 3 2 1 -> 4 5 3 2 1 //这里要移动的数是4
//4 5 3 2 1 -> 4 5 5 2 1 -> 4 4 5 2 1 -> 3 4 5 2 1 //这里要移动的数是3
//3 4 5 2 1 -> 3 4 5 5 1 -> 3 4 4 5 1 -> 3 3 4 5 1 -> 2 3 4 5 1 //这里要移动的数是2
//2 3 4 5 1 -> 2 3 4 5 5 -> 2 3 4 4 5 -> 2 3 3 4 5 -> 2 2 3 4 5 -> 1 2 3 4 5 //这里要移动的数是1
//最好情况 O( N )
//最差情况 O( N*N )
void Insertion_Sort( std::vector<int>& _rVec ){
//
//
//
int i;
for( int j = 1; j != _rVec.size(); ++j ){
int temp = _rVec[j];
for( i = j; i >0 && temp<_rVec[i-1]; --i ){
//
_rVec[i] = _rVec[i-1];
}
_rVec[i] = temp;
}
}