7-7、快速排序的实现

用快速排序算法对一组待排序数据进行排序。实现如下操作:已知数组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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值