直接插入排序算法c++
时间: 2024-01-31 18:10:02 浏览: 136
直接插入排序算法是一种简单直观的排序算法,它的基本思想是将一个记录插入到已经排好序的有序序列中,从而得到一个新的、记录数增加1的有序序列。下面是一个使用C++实现的直接插入排序算法的示例代码:
```cpp
#include <iostream>
using namespace std;
void insertionSort(int arr[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = arr[i];
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 arr[] = {12, 11, 13, 5, 6};
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码实现了直接插入排序算法。首先,我们定义了一个名为`insertionSort`的函数,该函数接受一个整型数组和数组的大小作为参数。在函数内部,我们使用了两个循环来实现插入排序的逻辑。外层循环从第二个元素开始遍历数组,内层循环用于将比当前元素大的元素向后移动,为当前元素找到合适的插入位置。最后,我们在`main`函数中定义了一个整型数组,并调用`insertionSort`函数对数组进行排序。最后,我们输出排序后的数组。
阅读全文