直接插入排序代码c++
时间: 2024-03-13 07:40:43 浏览: 96
直接插入排序是一种简单的排序算法,它的基本思想是将待排序的元素逐个插入到已经排序好的序列中,直到所有元素都插入完成为止。以下是C++实现直接插入排序的代码:
```cpp
#include <iostream>
using namespace std;
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--;
}
arr[j + 1] = key;
}
}
int main() {
int arr[] = {5, 2, 8, 3, 1};
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
cout << "排序后的数组";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
相关问题
数据结构直接插入排序代码c++
以下是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;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] =;
}
}
int main() {
int arr[] = { 12, 11, 13, 5, 6 };
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
cout << "Sorted array: \n";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
```
直接插入排序代码实现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`函数接受一个整数数组和数组大小作为参数。它通过迭代,每次将一个元素(初始时是数组中的第二个元素)与前面已排序的元素进行比较,如果当前元素比前面的元素小,则逐步将前面的元素向右移动一位,直到找到合适的位置插入。
阅读全文