用c++实现快速排序和选择排序
时间: 2023-07-04 08:28:39 浏览: 52
好的,下面是用 C++ 实现快速排序和选择排序的示例代码。
快速排序:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void quickSort(vector<int>& nums, int left, int right) {
if (left >= right) return; // 只有一个元素或者没有元素,直接返回
int pivot = nums[left]; // 选取最左边的元素作为基准值
int i = left, j = right;
while (i < j) {
while (i < j && nums[j] >= pivot) j--;
nums[i] = nums[j];
while (i < j && nums[i] <= pivot) i++;
nums[j] = nums[i];
}
nums[i] = pivot; // 基准值归位
quickSort(nums, left, i - 1); // 递归排序左边部分
quickSort(nums, i + 1, right); // 递归排序右边部分
}
int main() {
vector<int> nums = {3, 5, 2, 1, 6, 4, 8, 7};
quickSort(nums, 0, nums.size() - 1);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
选择排序:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void selectionSort(vector<int>& nums) {
int n = nums.size();
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (nums[j] < nums[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
swap(nums[i], nums[minIndex]);
}
}
}
int main() {
vector<int> nums = {3, 5, 2, 1, 6, 4, 8, 7};
selectionSort(nums);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```