目录
一、问题描述
[问题] 应用快速排序方法对一个记录序列进行升序排列。快速排序(quick sort)的分治策略如下。

(1)划分:选定一个记录作为轴值,以轴值为基准将整个序列划分为两个子序列r(1)… r(i-1))和r(i+1)…r(n),轴值的位置i在划分的过程中确定,并且前一个子序列中的记录均小于或等于轴值,后一个子序列中的记录均大于或等于轴值;
(2)求解子问题:分别对划分后的每一个子序列造归处理;
(3)合并:由于子序列排序是就地进行的,所以合并不需要任何操作。
二、想法
[想法] 首先对待 排序记录序列进行划分,划分的轴值应该遵循平衡子问题的原则,使划分后的两个子序列的长度尽量相等,这是决定快速排序算法时间性能的关键。轴值的选择有很多方法,例如,可以随机选出一个记录作为轴值,从而期望划分是较平衡的。
第一次划分过程:
后续排序结果:
三、算法实现
int Partition(int r[],int start,int end) {
int i=start,j=end;
while(i<j) {
while (i<j&&r[i]<=r[j]) //对右侧扫描,即r[i] 与右侧的r[j...i+1]比较,升序排序,如果有小于r[i]的值,即右小于左则跳出循环,还有i>=j也跳出循环,即比较完,没有比它小的,必须两个条件同时满足。
j--;
if(i<j) { //在i<j的情况下满足r[j]<r[i]
r[i]=r[i]^r[j]; //交换值
r[j]=r[i]^r[j]; //注意:如果位置一样不可以使用异或交换值,即r[1]不能异或r[1];
r[i]=r[i]^r[j]; //也可以定义中间值,进行交换
i++;
}
}
while (i<j&&r[i]<=r[j])//对左侧扫描,即r[j] 与左侧的r[i...j-1]比较,升序排序,如果有大于r[j]的值,即左侧值大于右侧值则跳出循环,还有i>=j也跳出循环,即比较完,没有比它大的,必须两个条件同时满足。
i++;
if(i<j) { //在i<j的情况下满足r[i]>r[j]
r[i]=r[i]^r[j];
r[j]=r[i]^r[j];
r[i]=r[i]^r[j];
j--;
}
return i; //返回轴值
}
void Quicksort(int r[],int start ,int end) { //快速排序
int pivot; //记录轴值
if(start<end) { //界限值
pivot=Partition(r,start,end); //排序并获得轴值
Quicksort(r,start,pivot-1); //对轴值左侧递归
Quicksort(r,pivot+1,end); //对轴值右侧递归
}
}
总结
快速排序是众多排序方法中,较为重要的一种,它在排序算法中具有排序速度快,而且是就地排序等优点,使得在许多编程语言的内部元素排序实现中采用的就是快速排序,很多面试题中也经常遇到。
相关推荐:
ChatGPT中文版下载免费版:智能对话新时代,尽在,ai光波
SEO要不,来看看如何通过SEO优化提高网站流量和曝光度,seo 获客技巧
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
SEO出来,打破流量瓶颈,助力企业增长的关键策略,南昌营销推广代理商电话
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,解决您的使用困扰!,ai光晕制作
SEO包月服务:助力企业提升网站排名与流量的长期利器,网站建设流程 报读文库
SEO快速优化技术:助力网站流量暴增,轻松登顶搜索引擎,铜陵ai全网通推广软件
用AI创作的文章算原创吗?深度背后的逻辑与意义
ChatGPT可以实现新闻报道的即时自动化生成,怎么更改ai2的图标
ChatGPT为什么打不开了?揭秘背后的原因与解决办法,ai业务后端
文章AI生成软件高效创作新纪元
AI免费文章生成器:轻松创作高质量内容的终极工具
ChatGPTCanvex打不开?详细分析及解决方法助你顺利使用,ai2.5d网格线去除
seo适合什么人做,哪种seo做得好 ,晋城ai论文写作免费
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里
SEO抓取:让您的网站从零到一的秘诀,佛山网站建设哪家效果好
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
SEO优化:提升网站流量的终极指南,揭阳网站快速推广
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
怎么用AI写出高质量科普文章?揭秘新时代创作利器!
AI人工智能文章生成器写作新纪元
怎么使用AI生成文章,轻松提升写作效率!
ChatGPT暂时不可用?如何高效应对并寻找最佳替代方案!,logo ai教程视频
ChatGPT美区要梯子吗?轻松畅享全球智能聊天体验,ai音位
seo相关知识是什么,seo相关技术 ,ai写作讯飞星火认知大模型
怎样利用AI写文章,轻松提升写作效率
SEO站内优化:提升网站排名的核心策略,厦门市网站优化企业
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
“收录量为1”,打造数字化时代的独特竞争力,网站建设页面制作流程
为什么要年前做SEO,企业为什么做seo推广 ,云南ai大数据公司
WPQQ-开启数字时代的智能连接新纪元,杭州网站推广厂家电话
SEO有话:如何用精准优化助力企业在线增长,食品微信营销推广
不利于seo是什么,不属于seo对网店推广的作用 ,ai渐变下载
SEO要求:如何优化网站提升搜索引擎排名,助力企业获取更多流量,鹤山区网站运营推广
目前最火的AI软件有哪些?深度解析必备工具
ChatGPT的梯子:突破网络壁垒,畅享智能对话的全新体验,ai的音标1001ai的音标
seo给你什么帮助,seo的利与弊 ,ai 大厨
SEO搜索关键词是什么意思?让你轻松网站流量的秘密!,ai颜色不对
ChatGPT登录503错误?轻松解决,快速恢复畅享智能体验!,ai怎么加植物材质效果
SEO人工优化-让你的网页轻松登上搜索引擎首页,ai主母
seo需要什么能力,seo需要哪些技术 ,ai长条弯曲
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
seo辅助词选什么,seo助手 ,各车企ai
seo需要干什么,seo需要具备什么知识 ,ai梦境档案世岛大宅
AI代谢文章:从灵感到成果的创作革命
SEO利用:让你的网站快速登顶,获取更多流量与客户!,延边小程序推广平台网站
SEO走动:提升网站流量的关键一步,SEO数据监控宝宝推荐
seo软件工具,seo软件是什么 ,AI妆容