#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 = {12, 11, 13, 5, 6};
cout << "排序前: ";
for (int num : arr) {
cout << num << " ";
}
cout << endl;
insertionSort(arr);
cout << "排序后: ";
for (int num : arr) {
cout << num << " ";
}
cout << endl;
return 0;
}
插入排序的基本思想:
代码解释:
insertionSort 函数实现了插入排序算法。它遍历数组中的每个元素,并将其插入到前面已经排序好的子数组中。main 函数用于测试插入排序算法。首先定义一个待排序的数组,然后调用 insertionSort 函数进行排序,最后输出排序前后的数组。关键步骤:
for (int i = 1; i < n; ++i) 从第二个元素开始遍历数组。while (j >= 0 && arr[j] > key) 将当前元素 key 插入到已排序部分的正确位置。key 插入到合适的位置,完成一次插入操作。希望这段代码和解释对你理解插入排序有所帮助!
上一篇:c++ override关键字
下一篇:c++ 纯虚函数
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站