1、vector
#include <iostream>
#include <vector>
// 插入排序函数
void InsertSort(std::vector<int>& arr) {
int n = arr.size();
int i, j;
for (i = 1; i < n; i++) {
if (arr[i] < arr[i - 1]) {
int temp = arr[i];
arr[i] = arr[i - 1];
for (j = i - 2; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
}
}
}
// 打印数组函数
void printArray(const std::vector<int>& arr) {
for (const auto& num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
}
int main() {
int n;
std::cin >> n;
std::vector<int> arr;
// 从 0 开始
for (int i = 0; i < n; i++) {
int num;
std::cin >> num;
arr.push_back(num);
}
InsertSort(arr);
printArray(arr);
return 0;
}
2、arr[n+1]
#include <iostream>
using namespace std;
void InsertSort(int arr[], int n){
int i,j,temp;
for(i=1;i<n;i++){
if(arr[i]<arr[i-1]){
temp = arr[i];
arr[i] = arr[i-1];
for(j=i-2;j>0&&arr[j]>temp;j--){
arr[j+1]=arr[j];
}
arr[j+1] = temp;
}
}
}
void printArray(int arr[] ,int n){
int i;
for(i = 0; i < n; i++){
printf("%d ", arr[i]);
}
printf("\n");
}
int main(){
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
InsertSort(arr,n);
printArray(arr,n);
return 0;
}