位置: 编程技术 - 正文

快速排序的算法思想及Python版快速排序的实现示例(快速排序的算法流程图)

编辑:rootadmin

推荐整理分享快速排序的算法思想及Python版快速排序的实现示例(快速排序的算法流程图),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:快速排序的算法和性能,快速排序的算法复杂度,快速排序的算法和性能,快速排序的算法原理,快速排序的算法设计,快速排序的算法原理,快速排序的算法原理,快速排序的算法思想,内容如对您有帮助,希望把文章链接给更多的朋友!

快速排序是C.R.A.Hoare于年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。

1.分治法的基本思想

分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。

2.快速排序的基本思想

设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:

(1)分解:

在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pivotpos-1)和R[pivotpos+1..high],并使左边子区间中所有记录的关键字均小于等于基准记录(不妨记为pivot)的关键字pivot.key,右边的子区间中所有记录的关键字均大于等于pivot.key,而基准记录pivot则位于正确的位置(pivotpos)上,它无须参加后续的排序。

注意:

快速排序的算法思想及Python版快速排序的实现示例(快速排序的算法流程图)

划分的关键是要求出基准记录所在的位置pivotpos。划分的结果可以简单地表示为(注意pivot=R[pivotpos]):

R[low..pivotpos-1].keys≤R[pivotpos].key≤R[pivotpos+1..high].keys

其中low≤pivotpos≤high。

(2)求解:

通过递归调用快速排序对左、右子区间R[low..pivotpos-1]和R[pivotpos+1..high]快速排序。

(3)组合:

因为当"求解"步骤中的两个递归调用结束时,其左、右两个子区间已有序。对快速排序而言,"组合"步骤无须做什么,可看作是空操作。

Python实现

原理: 先用初始数据, 然后对这个数据进行排序使左边的数据小于该数据,右边的大于该数据,然后用递归的方法对两边的数据进行依次排序。

Python中的复制操作及copy模块中的浅拷贝与深拷贝方法 程序中常常需要复制一个对象,按思路应该是这样的a=[1,2,3]b=a#[1,2,3]printb已经复制好了,但是现在得改变一下第一个元素的值把它改成5b[0]=5#[5,2,3]printb#[5,2

Python编程中对super函数的正确理解和用法解析 当在子类需要调用父类的方法时,在python2.2之前,直接用类名调用类的方法,即非绑定的类方法,并把自身对象self作参数传进去。classA(object):defsay(self):

Python使用ntplib库同步校准当地时间的方法 NTP(NetworkTimeProtocol)是由美国德拉瓦大学的DavidL.Mills教授于年提出,设计用来在Internet上使不同的机器能维持相同时间的一种通讯协定。NTP估算封包

标签: 快速排序的算法流程图

本文链接地址:https://www.jiuchutong.com/biancheng/387022.html 转载请保留说明!

上一篇:Python使用functools模块中的partial函数生成偏函数(python中fun函数怎么用)

下一篇:Python中的复制操作及copy模块中的浅拷贝与深拷贝方法(python复制sheet)

  • 进项税抵扣怎么做账
  • 什么叫做负税
  • 长期应收款的计税基础 陈版
  • 小规模纳税人普票交税吗
  • 养殖合作社属于什么行业
  • 企业取得的财政补贴收入是否缴纳增值税
  • 公司注册的费用记什么科目
  • 发票抵扣联做进项税入账处理是怎样的?
  • 建筑工程伙食费包括什么
  • 烟草生产者消费税计算方法
  • 应付供货单位的货款属于什么会计科目
  • 未实现但已确认的风险代理费收入如何处理?
  • 个人向公司借贷需要交税吗
  • 差额银行承兑汇票
  • 应收账款转营业外收入怎么写申请
  • 鼠标反应迟钝是什么原因
  • 库存商品结转会计分录
  • 商标注册费相关法律法规
  • 月末计提固定资产折旧时,应借记
  • 辅导费是什么
  • 没有车船税可以检车吗
  • uc浏览器缓存视频删除了还占内存
  • rds selected
  • 如果退货卖家拒绝会把货退回来么
  • 增值税普通发票怎么开
  • 差额银行承兑汇票
  • 购买税盘怎么做分录
  • php查询数据库语句
  • 辅料分配方法
  • 专业初审
  • 商业汇票贴现时贴现额的大小受贴现期长短的影响
  • 普莱斯德
  • php 登陆
  • 什么是前后端分离的方式
  • 包装物应交消费税
  • Laravel5权限管理方法详解
  • 最好用的电脑强力卸载软件
  • 帝国cms配置数据库
  • 社会团体所得税汇算清缴
  • 工会经费是什么凭证
  • 持续经营利润是什么意思
  • 兼职劳务报酬如何入账
  • 织梦栏目页模板
  • 没有进项票开了销项票后期有了进项票可以吗
  • 小规模纳税人可以做进出口贸易吗
  • 个体工商户税收标准2023年
  • 出口企业免税要交什么税
  • 公司购车购置税可以抵扣吗
  • 超过两年记入错误的主营业务成本怎么调账?
  • 报销差旅费会计分录退回现金
  • 可抵扣进项税额包括进项税额转出吗
  • 购买产品样品计入什么科目
  • 存货的盘盈
  • 研发费用的台账由谁做
  • 物业门禁卡怎么入账
  • 应付账款周转率越大越好还是越小越好?
  • 赠品视同销售价格如何确定?
  • 借贷必相等的含义
  • 管理费用中的水电费怎么记账
  • 有形资产负债率多少合适
  • 损益表格式 最新
  • safari macos
  • spyblast.exe - spyblast是什么进程 有何作用
  • win7和vista的区别
  • win8如何更新驱动
  • win10系统如何查看版本号
  • Android游戏开发入门
  • dos 批处理
  • 基于像素的分类方法
  • jquery设置自定义属性
  • cluster into
  • 配置命令提示符怎么打开
  • 原生js import
  • python 性能
  • 如何用u盘重装电脑系统
  • 电子税务局可以开纸质发票吗
  • 机票票号怎么查航班
  • 武汉税务证怎么网上申请
  • 广东省地方税务局
  • 法治建设的基本原则是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设