#include <iostream>
using namespace std;
#include <vector>
/*void QuikSort(vector<int>& arr, int left, int right)
{
}*/
void printArr(int A[],int len)
{
for (int i = 0; i < len; i++)
{
cout << A[i]; // 按要求:元素间空格,最后无空格
if (i < len - 1)
{
cout << " ";
}
}
cout << endl; // 每轮排序后换行
}
int Partition(int A[], int low, int high,int len) //一趟划分
{
//设第一个元素为枢轴
int pivot = A[low];
while (high > low) //跳出循环
{
while (A[high] >= pivot && high > low)
{
high--;
}
A[low] = A[high]; //将比枢轴小的移动到左边
while (A[low] <= pivot && high > low)
{
low++;
}
A[high] = A[low]; //将比枢轴大的移动到右边
}
A[low] = pivot; //枢轴元素最后存放到最终位置
printArr(A,len); //打印一趟排序
return low; //返回存放枢轴的最终位置
};
void quickSort(int A[],int low,int high, int len)
{
if (low < high)
{
//进行一次快排
int pivotPos = Partition(A,low,high,len);
//递归地对左子表快排
quickSort(A, low, pivotPos - 1,len);
//递归地对右子表快排
quickSort(A, pivotPos + 1,high,len);
}
}
int main()
{
const int len = 10; // 数组长度固定为10
int A[len] = { 0 };
// 输入10个整数
for (int i = 0; i < len; i++)
{
cin >> A[i];
}
// 调用快速排序(传入下标范围0~9和数组长度)
quickSort(A, 0, len - 1, 10);
return 0;
}
题目描述编程序,读入n个整数(n<30),对它们进行从小到大快速排序,并输出每一轮排序后的结果。输入n个整数。输出每一轮排序后的结果。注意:整数之间有1个空格,最后一个整数后面没有空格。
于 2025-09-23 14:35:55 首次发布
348

被折叠的 条评论
为什么被折叠?



