1 / 4
文档名称:

python实现快速排序的几种方法.docx

格式:docx   大小:20KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

python实现快速排序的几种方法.docx

上传人:雾里行舟 2019/3/1 文件大小:20 KB

下载得到文件列表

python实现快速排序的几种方法.docx

文档介绍

文档介绍:python实现快速排序的几种方法快速排序算法说明:设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用中间的数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j];4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],A[i]与A[j]交换;5)重复第3、4、5步,直到I=J;(3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[j]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i,j指针位置不变。另外,i==j这一过程一定正好是i+或j-完成的时候,此时令循环结束)。(注:以上说明摘自百度百科)方法一:经典快速排序算法下面的代码中是经典快速排序算法,并且范围正序和倒序两种排列方式:#正序排列函数defqiucksortasc(arr,begin,end):#设定取出开始的第一个值用于判断key=arr[begin]#从左边开始找大于key值的元素下标pl=begin#从右边开始找小于key值的元素下标pr=endwhile1:#找到从右边开始第一个小于key的元素,如果大于key,pr-1继续寻找whilearr[pr]>key:pr=pr-1#找到从左边开始第一个大于key的元素,如果小于key,pl+1继续寻找whilearr[pl]<key:pl=pl+1#交换arr[pr]和arr[pl]的值arr[pl],arr[pr]=arr[pr],arr[pl]print'plis%dandpris%d'%(pl,pr),"and",arr#当pr和pl相等的时候跳出循环ifpl==pr:print"完成一趟快排"break;#递归开始#对key左边的元素开始排序if(pl+1<end):qiucksortasc(arr,pl+1,end)#对key右边的元素开始排序if(pr-1>begin):qiucksortasc(arr,begin,pr-1)#倒序排列函数defqiucksortdesc(arr,begin,end):#设定取出开始的第一个值用于判断key=arr[begin]#从左边开始找大于key值的元素下标pl=begin#从右边开始找小于key值的元素下标pr=endwhile1:#找到从右边开始第一个大于key的元素,如果小于key,pr-1继续寻找whilearr[pr]<key:pr=pr-1#找到从左边开始第一个小于key的元素,如果大于key,pl+1继续寻找whilearr[pl]>key:pl=pl+1#交换arr[pr]和arr[pl]的值arr[pl],arr[pr]=arr[pr],arr[pl]print'plis%dandpris%d'%(pl,pr),"and",arr#当pr和pl相等的时候

最近更新

百年教育守初心三代校长担使命 12页

冰温结合纳他霉素对绿芦笋采后生理品质的影响.. 3页

裕溪一线船闸扩容改造工程闸位选址及布置方案.. 7页

八年级上册生物期末考试卷及答案(人教版) 9页

八年级下音乐教学计划例文 4页

专业技术工作总结(精选5篇) 13页

7200A电脑直接驱动自动切线平缝机使用说明书 5页

初三上期末考试动员班会市公开课一等奖省赛课.. 23页

高考英语复习Unit4Pygmalion新人教版选修市赛.. 29页

2025年uPC1237保护电路 4页

2025年3部编版三年级语文上册.句子专项练习含.. 5页

2025年高二数学文科 7页

2025年高中文言文特殊句式大全 7页

柴油机喷射与雾化 25页

2025年餐饮企业存货具有哪些特征 2页

2025年部编版八年级下册语文教学计划 4页

2025年部编一年级上册语文期中知识点汇总 22页

2025年苏州大学高考考前指导卷2 10页

机械CADCAM(proe)说课课件 22页

木本植物的离体嫁接 18页

2025年浙江省衢州市-高一下学期期末考试数学试.. 16页

2025年一级建造师继续教育考试题及答案 3页

电商运营合同协议范本(标准版) 10页

新北师大版三年级数学下册教学计划(含进度表).. 5页

五年级上册数学常考易错题汇总(90道) 22页

初中生职业规划范文 5页

六年级上册脱式计算100道带答案 17页

人工智能在传染病防控中的应用 28页

流动式起重机基础知识讲稿 38页

佛教电视剧大全 3页