1 /** 2 * 排序算法值插入排序 3 **/ 4 #include <iostream> 5 #include <vector> 6 using namespace std; 7 8 void sortChaRu(vector<int>& vec, int len) { 9 for (int j = 1; j < len; ++j) { 10 int key = vec[j];//待排序的第一个元素 11 int i = j - 1;//已排序的最后一个元素的索引 12 13 while (i >= 0 && key < vec[i]) {//比较已经排序过的序列,找到要插入的位置 14 vec[i + 1] = vec[i]; 15 i--; 16 } 17 vec[i + 1] = key; 18 } 19 } 20 21 int main() { 22 vector<int> vec = {2,1,3,5,4}; 23 int len = vec.size(); 24 sortChaRu(vec, len); 25 for (int i = 0; i < len; ++i) { 26 cout << vec[i] << endl; 27 } 28 return 0; 29 }