void sort(int *a, int left, int right)
{
    if(left >= right)/*如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了*/
    {
        return ;
    }
    int i = left;
    int j = right;
    int key = a[left];
     
    while(i < j)                               /*控制在当组内寻找一遍*/
    {
        while(i < j && key <= a[j])
        /*而寻找结束的条件就是,1,找到一个小于或者大于key的数(大于或小于取决于你想升
        序还是降序)2,没有符合条件1的,并且i与j的大小没有反转*/ 
        {
            j--;/*向前寻找*/
        }
         
        a[i] = a[j];
        /*找到一个这样的数后就把它赋给前面的被拿走的i的值(如果第一次循环且key是
        a[left],那么就是给key)*/
         
        while(i < j && key >= a[i])
        /*这是i在当组内向前寻找,同上,不过注意与key的大小关系停止循环和上面相反,
        因为排序思想是把数往两边扔,所以左右两边的数大小与key的关系相反*/
        {
            i++;
        }
         
        a[j] = a[i];
    }
     
    a[i] = key;/*当在当组内找完一遍以后就把中间数key回归*/
    sort(a, left, i - 1);/*最后用同样的方式对分出来的左边的小组进行同上的做法*/
    sort(a, i + 1, right);/*用同样的方式对分出来的右边的小组进行同上的做法*/
                       /*当然最后可能会出现很多分左右,直到每一组的i = j 为止*/
}

转载于:https://www.cnblogs.com/Alex0111/p/4624298.html

考研编程练习----快速排序相关推荐

  1. 西安交通大学915考研--编程题Java代码踩坑(2020年真题)

    西安交通大学915考研–编程题Java代码踩坑(2020年真题) 目录 西安交通大学915考研--编程题Java代码踩坑(2020年真题) 2020.1--寻找方程组的解 2020.2--几组数中筛选 ...

  2. 西安交通大学915考研编程笔记

    这是915编程学习笔记,仅供自己复习使用,如果你有别的实现方式,欢迎留言.本人是菜鸡一枚,不喜轻喷.考研加油! 持续更新中-[完结,不再更新2019/12/5] 因为比较久没有写C++了,忘得差不多, ...

  3. 2022中央财经大学《901C语言程序设计》考研编程题回忆版

    在过去的22考研中,计算机专业内卷严重,像中央财经大学的电子信息学院更加悲惨,成功上岸的分数都在400+ 分享去年考研的两道编程题 1.2000以内的所有全对数,全对数是指一个数X除了它本身意外所有的 ...

  4. ChatGPT秒杀了所有408考研编程题……

    编辑 |  FightingCV 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 本文均由ChatGPT生成 那么,ChatGPT可以解决408中的编程题吗? ...

  5. 计算机考研编程题占,纪念***去的2018计算机考研编程题

    具体题目我现在没有 但是 前几天很不甘心的翻了一下别人那时候斜下的题目大意,我惊奇的发现,我看错题目意思了 已知int数组长度n,求数组中未曾出现过的最小正整数,要求时间复杂度尽可能优化. 例如{1, ...

  6. 考研编程练习----递推数列(矩阵相乘法)

    题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q.这里n >= 2. 求第k个数对10000的模. 输入: 输入包括5个整数:a0.a1.p.q.k. 输出 ...

  7. 考研编程练习----排名

    题目描述: 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩 ...

  8. 考研编程练习----畅通工程

    题目描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连, ...

  9. Risk-V编程,实现快速排序

    Risk-V编程,实现快速排序 RISK-V编程 快速算法(C语言实现) 使用RISK-V实现快速排序 RISK-V编程 近期遇到作业需要使用RISK-V来编程实现快速排序,但是查询了一下没有找到相关 ...

最新文章

  1. spark ml中一个比较通用的transformer
  2. STM32 KEIL中 负数绝对值处理
  3. Oracle创建表管理表
  4. memcached 高可用工具 memcached-ha
  5. POJ 1741 Tree(树分治)
  6. Winform应用程序实现通用遮罩层二
  7. 【中级软考】什么是非对称加密算法?
  8. 神经网络neural network简单理解
  9. django08: 视图与路由(旧笔记)
  10. MOSS点滴(2):自定义Application Page
  11. MYSQL中HEX、UNHEX函数
  12. CodeForces - 748C Santa Claus and Robot
  13. Matlab2012b license失效解决办法
  14. CentOS7安装Oracle11.2.0.4
  15. SDRAM控制器(初始化)
  16. 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地
  17. Google高级搜索语法指令
  18. 破解计算机win7管理员密码,教你win7旗舰版怎么破密码
  19. 如何解决代理模式详解的原理详解
  20. 简单的走迷宫小游戏(C语言编写,无指针,无链表)

热门文章

  1. Linux命令学习笔记之一目录与文件基本操作
  2. 零位扩展和符号位扩展
  3. Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?...
  4. 一个关于HINT中指定索引查询的问题
  5. ORA-00257 错误解决
  6. 一、WPF 2个datagrid之间同步进度条
  7. 04机器学习实战之朴素贝叶斯
  8. TensorFlow数据读取机制:文件队列 tf.train.slice_input_producer和 tf.data.Dataset机制
  9. python @classmethod 和 @staticmethod区别,以及类中方法参数cls和self的区别
  10. 判断字符串括号{}[]()是否闭合—python实现