按快速排序原理实现排序。要求运行后控制台输入待排序数据,并显示快速排序过程中第一趟划分结果以及排序结果。请用C++代码完整输出
时间: 2024-10-14 12:02:19 浏览: 32
public class Aa.docx
以下是使用快速排序算法在C++中实现的一个简单示例。这个程序会提示用户输入一组数字,然后按照快速排序的步骤进行操作并打印过程中的第一趟划分结果以及最终的排序结果。
```cpp
#include <iostream>
#include <vector>
// 快速排序函数
void quickSort(std::vector<int>& arr, int low, int high) {
if (low < high) {
// 第一趟划分,选择基准元素(这里通常选中间位置)
int pivotIndex = low + (high - low) / 2;
int pivotValue = arr[pivotIndex];
// 分区
int i = low, j = high;
while (i <= j) {
while (arr[i] < pivotValue) {
i++;
}
while (arr[j] > pivotValue) {
j--;
}
if (i <= j) {
std::swap(arr[i], arr[j]);
i++;
j--;
}
}
// 打印划分后的子数组
std::cout << "First partition: ";
for (int k = low; k <= j; k++) {
std::cout << arr[k] << " ";
}
std::cout << "\n";
// 递归地对左右两部分进行排序
quickSort(arr, low, j);
quickSort(arr, i, high);
}
}
int main() {
std::cout << "Enter a sequence of numbers to sort separated by space: ";
std::string input;
std::getline(std::cin, input);
std::vector<int> nums;
for (char num : input) {
nums.push_back(std::stoi(num));
}
quickSort(nums, 0, nums.size() - 1);
std::cout << "Sorted array: ";
for (const auto& num : nums) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
阅读全文