解法:
/* 插入排序 */
void insertionSort(vector<int>& nums) {// 外循环:已排序区间为 [0, i-1]for (int i = 1; i < nums.size(); i++) {int base = nums[i], j = i - 1;// 内循环:将 base 插入到已排序区间 [0, i-1] 中的正确位置while (j >= 0 && nums[j] > base) {nums[j + 1] = nums[j]; // 将 nums[j] 向右移动一位j--;}nums[j + 1] = base; // 将 base 赋值到正确位置}
}
本题只需
#include<iostream>
#include<vector>
using namespace std;
int main() {int n;cin >> n;vector<int> vec(n);for (int& x : vec) cin >> x;if (vec[0] > vec[1]) swap(vec[0], vec[1]);for (int x : vec) cout << x << " ";return 0;
}