开发者社区> 问答> 正文

输入10个数,如何用递归算法实现快速排序?

输入10个数,如何用递归算法实现快速排序?

展开
收起
知与谁同 2018-07-17 19:46:21 1930 0
1 条回答
写回答
取消 提交回答
  • Nothing for nothing.
    #include<iostream>
    using namespace std;
    int a[10];
    void qs(int s,int e)
    {
    int x=a[s],l=s,r=e;//以第一个数为参照做比较
    if(l>=r)return;
    while(l<r)
    {
    while(l<r&&a[r]>=x)
    r--; //不小于分界值的留在右边,遇到小于的停止
    a[l]=a[r];
    while(l<r&&a[l]<=x)
    l++; //小于分界值的留在左边,遇到不小于的停止
    a[r]=a[l];
    }
    a[r]=x;
    qs(s,r-1);
    qs(r+1,e);//递归
    }
    int main()
    {
    int i;
    for(i=0;i<10;i++)
    cin>>a[i]; //输入数组元素
    qs(0,9); //执行排序函数
    for(i=0;i<10;i++) //输出排序后结果
    cout<<a[i];
    system("pause");
    }
    2019-07-17 22:50:39
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载