基本思想:将数组分为有序部分和无序部分,如果全部无序,则取第一个元素作为有序数组,从无序部分中逐个取出带排序元素,与有序部分进行比较,插入到合适位置。
实现代码
void insert_sort(std::vector<int> &arr)
{
for(int i=1; i < arr.size(); i++)
{
int temp = arr[i];//待排序元素
int j=i-1;
for(; j >=0; j--)
{
if(arr[j] < temp) break;
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}