直接插入排序代码实现c++
时间: 2024-06-08 13:03:33 浏览: 112
基于C++的直接插入排序实现(免费提供全部源码)
直接插入排序(Direct Insertion Sort)是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。下面是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;
}
// 插入key到正确的位置
arr[j + 1] = key;
}
}
int main() {
int data[] = {9, 7, 5, 11, 12, 2, 14, 3, 10};
int size = sizeof(data) / sizeof(data);
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`函数接受一个整数数组和数组大小作为参数。它通过迭代,每次将一个元素(初始时是数组中的第二个元素)与前面已排序的元素进行比较,如果当前元素比前面的元素小,则逐步将前面的元素向右移动一位,直到找到合适的位置插入。
阅读全文