C语言快速排序算法

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 为止*/
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unbuntu使用经典界面

为什么80%的码农都做不了架构师&#xff1f;>>> 昨天升级到UBUNTU 11.04, 发现新的Unity界面很不适应&#xff0c;于是将其恢复到旧式经典界面&#xff0c;具体操作模式方法如下&#xff1a; 在已经登录的状态下&#xff0c;选择 [注销]然后在重新登录的时候&#…

学习:深入浅出之正则表达式(转)

本文是Jan Goyvaerts为RegexBuddy写的教程的译文&#xff0c;版权归原作者所有&#xff0c;欢迎转载。但是为了尊重原作者和译者的劳动&#xff0c;请注明出处&#xff01;谢谢&#xff01; 1. 什么是正则表达式 基本说来&#xff0c;正则表达式是一种用来描述一定数量文本…

C语言判断计算机存储是大端还是小端

计算机的一个int型数据是用多个字节表示的&#xff0c;如果在内存中存放时标称该数据的地址中存放的是数据的最低字节&#xff0c;就叫小端机&#xff0c;反之把高字节存放在标称地址中的则称为大端机。所以可以定义一个int变量&#xff0c;将其地址强制为char *型地址&#xf…

服务器开发中网络数据分析与故障排查经验漫谈

转载大牛的文章&#xff1a; https://mp.weixin.qq.com/s/6ZmiKUz4ZQvwLXkzzBrFcg

每天干的啥?(2019.3)

【本年目标】 【本月目标】【本月总结】 【3月每日记录】 去洗照片24张9寸&#xff0c;研究手机root&#xff08;y66不支持啊&#xff09;&#xff0c;下午党学习照相、看完第4课blake《用户数据ugame》、研究轮滑gif、晚上钢琴首次调律。 去妈妈那吃饭&#xff0c;学钢琴、佰洲…

【Andorid X 项目笔记】禁用ListView的Fling功能(1)

前言新的项目正在紧张开发中&#xff0c;初步估计2个月时间开发完成第一版&#xff0c;我负责Android端开发&#xff0c;由于不便过早公布&#xff0c;本系列将命名为“X项目笔记”&#xff0c;并于项目结束后最终公布名称。本系列主要记录与分享"X项目"中遇到的问题…

C语言题目地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m3),有多少种走法

地图上有m个城市&#xff0c;序号依次为1,2,3....m&#xff0c;刚开始你在1&#xff0c;若每次只能从当前城市去往当前序号加1或者加3的城市&#xff0c;要到达m城市&#xff08;m>3&#xff09;,有多少种走法 要想到达m&#xff0c;则前一个应该是m - 1或者m -3&#xff1b…

Java IO/NIO教程

Java IO教程 http://tutorials.jenkov.com/java-io/index.html Java NIO教程 英文版&#xff1a; http://tutorials.jenkov.com/java-nio/index.html 中文版: Java NIO概述Java NIO ChannelJava NIO BufferJava NIO Scatter / GatherJava NIO 通道之间的数据传输Java NIO Selec…

SQL Server 数据库管理常用的SQL和T-SQL语句

--按姓氏笔画排序:SELECT*FROM TableName ORDERBY CustomerName COLLATE Chinese_PRC_Stroke_ci_as--数据库加密:SELECT encrypt(原始密码)SELECT pwdencrypt(原始密码)SELECT pwdcompare(原始密码,加密后密码)1--相同&#xff1b;否则不相同 encrypt(原始密码)SELECT pwdencry…

什么是一致性Hash算法?

原文链接&#xff1a;https://blog.csdn.net/bntX2jSQfEHy7/article/details/7954936 最近有小伙伴跑过来问什么是Hash一致性算法&#xff0c;说面试的时候被问到了&#xff0c;因为不了解&#xff0c;所以就没有回答上&#xff0c;问我有没有相应的学习资料推荐&#xff0c;当…

ZEN CART 在LINUX系统下设置邮箱方法---用GMAIL设置,方法选择SMTPAUTH

电子邮件发送方式smtpauth 电子邮件换行LF 使用HTML格式发送电子邮件true 发送电子邮件true电子邮件存档false 电子邮件出错信息false 用于显示的店主邮件地址salemulberrydiscountstore.com发件人邮件地址salemulberrydiscountstore.com 电子邮件必须从现有域名发送No 管理员电…

c++入门基础知识

命名空间刚开始接触c&#xff0c;我们会发现与C语言相比不光头文件有所不同&#xff0c;还会发现using namespce std&#xff1b;这句话&#xff0c;其实这就是c的命名空间。 (1) 概念命名空间是为了防止名字冲突提供更加可控的机制。命名空间分割了全局命名空间&#xff0c;其…

读书笔记之《得未曾有》

作者 安妮宝贝&#xff0c;2014年笔名改为“庆山” 感想 第一次读庆山的作品&#xff0c;可以书名来总结的一下&#xff0c;得未曾有——获得了一种未曾有过得感受。 一、感受作者 高晓松老师的节目里说过一句话&#xff0c;写作需要长时间的观察人性、需要极强的观察能力。庆山…

数据库索引的实现原理

转载&#xff1a;https://blog.csdn.net/kennyrose/article/details/7532032 强烈建议参阅链接&#xff1a;http://www.linezing.com/blog/?p798#nav-1 说白了&#xff0c;索引问题就是一个查找问题。。。 数据库索引&#xff0c;是数据库管理系统中一个排序的数据结构&…

斐波那契序列 集锦

[定理1] 标准Fibonacci序列&#xff08;即第0项为0&#xff0c;第1项为1的序列&#xff09;当N大于1时&#xff0c;一定有f(N)和f(N-1)互质 其实&#xff0c;结合“互质”的定义&#xff0c;和一个很经典的算法就可以轻松证明对&#xff0c;就是辗转相除法互质的定义就是最大公…

linux ssh密钥登录配置

首先确保服务器ssh服务已启动&#xff0c;用户能够正常登录&#xff0c;然后配置客户端&#xff0c;过程如下&#xff1a; 一、先用自已的用户登录到服务器&#xff0c;比如我用 uplinux 登录到服务器 二、运行 SSH Secure Shell 工具中的“Secure Shell Client ”&#xff0c;…

C++基础知识简答题

1、C 可执行程序的内存分布 BSS&#xff1a;Block Started by Symbol 存放程序中未初始化的全局变量 数据段&#xff1a; 存放已初始化的全局变量&#xff0c;静态内存分配 代码段&#xff1a; 存放执行代码 堆heap&#xff1a; 存放运行中动态分配的内存段&#xff0c;可扩张或…

linux驱动简单介绍

linux驱动简单介绍 驱动基本介绍 驱动。顾名思义就是“驱使硬件设备行动”。设备驱动与底层硬件之间打交道&#xff0c;按照硬件设备的具体操作方式来读写设备寄存器&#xff0c;最终完成一系列操作。 设备 驱动充当了应用程序和应用软件直接的纽带&#xff0c;它使得应用软件只…

远离客户陷阱小故事 转

出处&#xff1a; http://ilovecode.cnblogs.com 做项目做产品可以有3个境界&#xff1a;1 挣钱的&#xff0c;2 做品牌的&#xff0c;3 很酷的。有的人从境界1做到3&#xff0c;有得人从3做到1。 我是从1做到3&#xff0c;因为有了钱&#xff0c;你才能远离垃圾项目和不…

typename的作用

一、与class的区别 template声明式中&#xff0c;class和typename这两个关键字意义完全相同 template<class T> class Widget; template<typename T> class Widget; 二、什么时候要用typename&#xff1f;比如下面的代码 template <typename C> void …