c++写一个排序算法
时间: 2023-03-06 08:43:38 浏览: 58
我可以写出一个基于插入排序的算法:1. 从第一个元素开始,该元素可以认为已经被排序;
2. 取出下一个元素,在已经排序的元素序列中从后向前扫描;
3. 如果该元素(已排序)大于新元素,将该元素移到下一位置;
4. 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置;
5. 将新元素插入到该位置后;
6. 重复步骤 2~5。
相关问题
C++写一个排序算法
好的,以下是一个简单的冒泡排序算法的C++代码:
```cpp
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换 arr[j] 和 arr[j+1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 4, 3, 2, 1};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这个代码实现了一个简单的冒泡排序算法,可以对一个整数数组进行排序。在 `main` 函数中,我们定义了一个数组 `arr`,然后调用 `bubbleSort` 函数对其进行排序。最后输出排序后的数组。
用 c++ 写一个排序算法
好的,我可以帮你写一个快速排序算法的C++实现,以下是代码:
```
#include <iostream>
#include <vector>
using namespace std;
void quickSort(vector<int> &arr, int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
int main() {
vector<int> arr = {3, 5, 1, 9, 2, 8, 4, 7, 6};
quickSort(arr, 0, arr.size() - 1);
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这是一个简单的快速排序实现,可以对一个整数数组进行排序。