思想:将待排序数组分为有序表和无序表,每次从无序表中取出一个元素,插入到有序表的适当为位置。一开始有序表是一个数,无序表是n-1个数。
每遍历一次,有序表中元素个数增加一个,无序表中元素个数减少一个,重复n-1次,完成排序。
#include<iostream>
#include<vector>
#include<string>
using namespace std;
void Insert_Sort(vector<int> &vec) { //插入排序
for (int i = 1; i < vec.size(); i++) {
int j = i - 1;
int temp = vec[i];
for (; j >= 0; j--) {
if (vec[j] > temp) {
vec[j + 1] = vec[j];
}else{
break;
}
}
vec[j + 1] = temp;
}
}
int main() {
vector<int> vec = { 10,20,30,40,60,50 };
Insert_Sort(vec);
for (int i = 0; i < vec.size(); i++) {
cout << vec[i] << " " ;
}
return 0;
}