下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、快速排序算法思想简单描述:快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,右边各数都比它大。然后又用同样的方法处理它左右两边的数,直到基准点的左右只有一个元素为止。它是由于1962年提出的。显然快速排序可以用递归实现,当然也可以用栈化解递归实现。下面的函数是用递归实现的,有兴趣的朋友可以改成非递归的。快速排序是不稳定的。最理想情况算法时间复杂度O(nlog2n),最坏O(n2)算法实
2、现:/*功能:快速排序输入:数组名称(也就是数组首地址)、数组中元素个数*/void quick_sort(int *x, int low, int high)int i, j, t;if (low < high) /*要排序的元素起止下标,保证小的放在左边,大的放在右边。这里以下标为low的元素为基准点*/ i = low; j = high; t = *(x+low); /*暂存基准点的数*/ while (i<j) /*循环扫描*/ while (i<j && *(x+j)>t) /*在右边的只要比基准点大仍放在右边*/ j-; /*前移一个位置*
3、/ if (i<j) *(x+i) = *(x+j); /*上面的循环退出:即出现比基准点小的数,替换基准点的数*/ i+; /*后移一个位置,并以此为基准点*/ while (i<j && *(x+i)<=t) /*在左边的只要小于等于基准点仍放在左边*/ i+; /*后移一个位置*/ if (i<j) *(x+j) = *(x+i); /*上面的循环退出:即出现比基准点大的数,放到右边*/ j-; /*前移一个位置*/ *(x+i) = t; /*一遍扫描完后,放到适当位置*/ quick_sort(x,low,i-1); /*对基准点左边的数再执行快速排
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消费者视角下猪肉加工企业社会责任的多维审视与实证探究
- 妊娠期血小板减少远程出血风险评估
- 2026合肥市中考历史考前提分模拟卷含答案
- 重庆八中高2026届高三 4月强化训练(二)历史试卷含答案及解析
- 临沧开业营销方案(3篇)
- 活动内容策划方案范文(3篇)
- 美容活动策划方案模板(3篇)
- 资产管理-营销方案(3篇)
- 麦当劳歌营销方案(3篇)
- 妊娠合并马凡综合征的合并症处理
- 2026中考语文20篇必考文言文高频题及答案
- 2026年注册安全工程师《安全生产管理》通关试题库含答案详解【A卷】
- 2026中国科技出版传媒股份有限公司石家庄分公司(科学出版社石家庄分公司)全职期刊编辑招聘20人建设笔试参考题库及答案解析
- 2026年物业管理师综合提升试卷附参考答案详解【轻巧夺冠】
- 2026海南三亚崖州湾科技城药械化创新服务站招聘工作人员4人笔试备考试题及答案解析
- 北京市西城区2026年高三一模英语试卷(含答案)
- 2026年哈密市辅警招聘考试公安业务知识训练题
- 医保活动宣传策划方案(3篇)
- 人民法院新办公楼物业方案
- 2026年及未来5年市场数据中国机械零部件行业发展前景预测及投资方向研究报告
- 2026年春季学期校长办公会议(校务会议)议事规则及办事流程
评论
0/150
提交评论