插入排序用c++写一个
时间: 2024-10-10 12:08:25 浏览: 25
插入排序是一种简单直观的排序算法,它的基本思想是将待排序的数据元素逐个插入到已排好序的部分中,形成一个新的有序序列。以下是使用C++实现插入排序的一个示例:
```cpp
#include <iostream>
void insertionSort(int arr[], int n) {
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
// 将大于key的元素逐步后移
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key; // 插入关键元素
}
}
// 测试函数
int main() {
int data[] = {9, 5, 2, 8, 1, 7, 6, 3, 4};
int size = sizeof(data) / sizeof(data[0]);
std::cout << "Original array: ";
for (int i = 0; i < size; ++i) {
std::cout << data[i] << " ";
}
insertionSort(data, size);
std::cout << "\nSorted array: ";
for (int i = 0; i < size; ++i) {
std::cout << data[i] << " ";
}
return 0;
}
```
在这个例子中,`insertionSort` 函数接受一个整数数组 `arr` 和其长度 `n`。它通过迭代数组从第二个元素开始,每次取一个元素(称为“关键元素”),并将其插入到前面已经排序好的部分的适当位置。`main` 函数则用于测试这个排序过程。
阅读全文