以下是C++实现的插入排序代码:
#include <iostream>
#include <vector>
using namespace std;
void insertionSort(vector<int>& arr) {
int n = arr.size();
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
int main() {
vector<int> arr = {
5, 3, 8, 6, 2, 7, 1, 4};
insertionSort(arr);
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
- 在这个代码中,insertionSort函数使用了一个循环来遍历整个数组,对于每个位置,它都会将该位置的元素插入到它前面已经排好序的子数组中。具体来说,它首先将当前位置的元素保存在key变量中,然后将当前位置的前一个位置往前遍历,如果发现前一个位置的元素比key大,就将前一个位置的元素向右移动一位,直到找到一个不大于key的位置,然后将key插入到该位置后面。最后,main函数定义了一个整型向量arr,并调用insertionSort函数对其进行排序,然后输出排序后的结果。
1 2 3 4 5 6 7 8
开发工具:百度文心一言
CLion