开发者社区> 问答> 正文

C语言中 关于快速排序法的题目:关键码序列:(66,13,51,76,81,26,57,69,23)按照递增顺序排序,采用快速

序法,并以第一个元素划分的基准,那么第一趟划分后的结果是?

展开
收起
知与谁同 2018-07-21 19:22:42 2859 0
2 条回答
写回答
取消 提交回答
  • Nothing for nothing.
    void partition(int r[],int low=0,int high)//这里low是最低位,high是数组最高位的位置
    {
    int pivo;//这是基准值
    pivo = r[low];
    while(low<high)
    {
    while(low<high&&r[high]>=pivo)//从后面找满足大于基准值的数
    {
    high--;
    }
    r[row] = r[high];//不满足时就到了这个语句,把小于基准值的放前面去
    while(low<high&&r[low]<=pivo)//从前面找小于基准值的数
    {
    low++;
    }
    r[high] = r[low];//不满足时就到这里把大于基准值的数放后面去
    }
    r[low] = pivo;//最后的位置就是放基准值的位置
    }
    //排序第一次完后应该是23,13,51,57,26,66,81,69,76
    2019-07-17 22:50:31
    赞同 展开评论 打赏
  • 胜天半子
    23,13,51,57,26,66 ,81 ,69,76
    2019-07-17 22:50:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载