用快速排序算法对一组待排序数据进行排序。实现如下操作:已知数组A[n]为整型的元素,将其用快速排序算法进行排序,要求输出排序以后的数据,元素之间用一个空格隔开。 注意:待排序数据元素的个数n和n个数据元素的值依次由键盘输入。
输入格式:
输入元素的个数n 输入n个待排序的元素的值,使用空格分隔
输出格式:
输出排好序的元素,使用空格分隔
输入样例:
10
59 20 17 36 98 14 23 83 13 28
输出样例:
13 14 17 20 23 28 36 59 83 98
#include
using namespace std;
void QuickSort(int q[],int l,int r);
int main()
{
int N;
cin>>N;
int a[N];
for(int i=0;i<N;i++)
{
cin>>a[i];
}
QuickSort(a,0,N-1);
for(int k=0;k<N;k++)
{
cout<<a[k];
if(k<N-1)
cout<<" ";
}
return 0;
}
void QuickSort(int q[],int l,int r)
{
if(l>=r)return;
int i=l-1,j=r+1,x=q[l+r>>1];
while(i<j){
do i++;while(q[i]<x);
do j–;while(q[j]>x);
if(i<j)swap(q[i],q[j]);
}
QuickSort(q,l,j),QuickSort(q,j+1,r);
}