一、
函数:void Quick_Sort(int *nums,int low,int high,int Bool)
参数解释
nums:数组指针
[low, high]:需排序的数组范围
Bool:等于1表示从小到大排序,不等于1从大到小排序

说明
将low1与high1看作指针
扫描数组中low到high范围
通过“双指针”比较交换使得low1左边的值始终小于(大于等于)flag,使得high1右边的值始终大于等于(小于)flag
最后low1=high1时的位置左边的值小于flag,右边的值大于等于flag,而flag正好位于此处

#include <stdio.h>
#include <time.h>void Quick_Sort(int *nums,int low,int high,int Bool){//需排序的片段首位序号if(high>low){int low1=low,high1=high,flag=nums[low],temp;while(high1>low1){while(high1>low1 && (nums[high1]>=flag==Bool)) high1--;nums[low1]=nums[high1];while(high1>low1 && (nums[low1]<flag==Bool)) low1++;nums[high1]=nums[low1];}nums[low1]=flag;Quick_Sort(nums,low,low1-1,Bool);Quick_Sort(nums,low1+1,high,Bool);}
}int main(int argc, char **argv) {printf("Hello, World!\n");int s[5];s[0]=2;s[1]=5;s[2]=1;s[3]=4;s[4]=3;int i=0;while(i<5)printf("%d ",s[i++]);printf("\n---------\n");Quick_Sort(s,0,4,1);int j=0;while(j<5)printf("%d ",s[j++]);return 0;
}

2-快速排序C递归实现(递增递减的简单转换)相关推荐

  1. 1-冒泡排序C实现(递增递减的简单转换)

    一. 函数:void Bub_Sort(int* head,int low,int high,int Bool) 参数解释 head:数组指针 [low, high]:需排序的数组范围 Bool:等于 ...

  2. 7-二路归并排序C实现(递增递减的简单转换)

    一. 主函数:void Mer_Sort(int* head,int low,int high,int Step_L,int Bool) 二路归并 参数解释 head:数组指针 [low, high] ...

  3. 6-堆排序C实现(递增递减的简单转换,可优化(41行提示))

    一. 主函数:void Hea_Sort(int* head,int low,int high,int Step_L,int Bool) 参数解释 head:数组指针 [low, high]:需排序的 ...

  4. 5-简单选择排序C实现(递增递减的简单转换)

    一. 函数:void Sec_Sort(int* head,int low,int high,int Step_L,int Bool) 参数解释 head:数组指针 [low, high]:需排序的数 ...

  5. 4-希尔排序C实现(递增递减的简单转换)

    一. 函数:void She_Sort(int* head,int low,int high,int* Step_S,int Step_Sl,int Bool) 参数解释 head:数组指针 [low ...

  6. 3-插入排序C实现(递增递减的简单转换)

    一. 参数解释 head:数组指针 [low, high]:需排序的数组范围 Bool:等于1表示从小到大排序,不等于1从大到小排序 说明 反向扫描数组中i到low范围 遇到更大的值则交换,遇到更小的 ...

  7. C++ Primer笔记12_运算符重载_递增递减运算符_成员訪问运算符

    1.递增递减运算符 C++语言并不要求递增递减运算符必须是类的成员.可是由于他们改变的正好是所操作对象的状态.所以建议设定为成员函数. 对于递增与递减运算符来说,有前置与后置两个版本号,因此.我们应该 ...

  8. 排序下---(冒泡排序,快速排序,快速排序优化,快速排序非递归,归并排序,计数排序)

    排序上 排序上 交换类排序 基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动. ...

  9. javascript中基本包装、算数运算符、递增递减运算符、赋值运算符、比较运算符、逻辑运算符、运算符优先级

    基本包装类型: 指基本类型的数据变量通过调用属性或者方法包装成了复杂类型,这个变量也称为基本包装类型对象 <script>var str = 'hello';str = str.repla ...

最新文章

  1. js中为什么你不敢用 “==”
  2. 区块链应用和法律规范
  3. MVC 源码系列之路由(一)
  4. docker挂载的目录无法读写
  5. 使用 Chrome Timeline 来优化页面性能
  6. Educational Codeforces Round 112 (Rated for Div. 2)(A-D)
  7. 钱准备好了吗?中国移动将在10月公布5G套餐资费
  8. 零基础学python还是c语言-C语言是学python的基础吗?
  9. mybatise 实现同一字段多模糊查询
  10. 用python延续科比的曼巴精神
  11. Android Layout 布局属性全解
  12. [程序设计]Java实现解析抖音无水印视频
  13. go-项目配置govendor【详细教程】
  14. 如何再html5中嵌入视频网站视频
  15. 05年硕士研究生新生宿舍安排
  16. 东北大学OJ题解—1741: C语言编程测试2020-6-11-焦明海
  17. vb.net 教程 3-6 窗体编程 打印
  18. 区块链改革(链改)行动第二次联席会议在京召开
  19. 22岁高中学历的我 如何做到CTO年薪50万
  20. clickhouse分布式表调研

热门文章

  1. 【团队建设问题】项目管理方面
  2. linux实验报告用户管理,Linux实验报告-用命令实现用户和组的管理
  3. iOS之性能优化·提高App的编译速度
  4. 337. House Robber III 打家劫舍 III
  5. Python装饰器之property()详解
  6. Jenkins 创建Maven项目
  7. 计算机精英协会考核题 —— 第三题:斐波那契数
  8. 如何将本地项目上传至GitHub
  9. 【Qt】Qt中QJsonArray类
  10. 【Android基础】Android Toast显示消息的几种方法