位置: 编程技术 - 正文

快速排序的算法思想及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)

  • 个税返还手续费增值税申报填在哪里
  • 销售收入怎么计算销项税额
  • 税收工资什么意思
  • 企业如何代扣代缴劳务报酬所得税
  • 物业公司代收电费怎么开票
  • 固定资产报废处置收入要交增值税吗
  • 制作费开票属于什么科目
  • 发票该如何打印
  • 没有进项发票出口转内销
  • 建筑物进项税额可以抵扣吗
  • 租房违约金怎么计算,怎么写
  • 银行回单卡是什么卡
  • 住房补贴是不是编制才有
  • 中介行业风险
  • 职工薪酬会计准则
  • 专用发票丢失怎么抵扣
  • 独立核算分公司注销需要清算吗
  • 预提土地使用税的分录
  • 外币报表折算差额在会计报表中应作为
  • 与其他企业联营算投资吗
  • 商标使用权入股可以退出吗
  • 旧机动车交易需要哪些法定证件
  • 材料存货的期末计量有何特点
  • 企业生产成本核算的一般程序为
  • 广告位租赁合同要交印花税吗
  • 增值税发票地址变更后开原来的地址能用吗
  • 合伙制企业交什么税种
  • 企业的不征税收入用于支出所形成的资产,其计算的折旧
  • 会计账目怎么理
  • 企业收到贷款贴息会计分录
  • 非应纳增值税项目
  • 报考中级会计的工作证明
  • 电脑上加速网页的加速器
  • 在win7中,如何将所有窗口进行层叠排列显示
  • 如何解决心脏供血不足
  • 暂估入库的处理方式有哪三种
  • 企业税收有哪些部分组成
  • loadprofiles什么意思
  • 企业备用金管理制度规定
  • 公司分立土地涉税问题
  • 股东以固定资产入股会计处理
  • php xdebug配置
  • 集团对子公司拨款的规定
  • windows刻录cd
  • 研发部门的房租物业费进什么科目
  • vue组件怎么使用
  • 先做凭证再付款
  • elementui组件有哪些
  • 旅游门票费用可以用来报销吗?
  • 下列项目的进项税额可以从销售税额中抵扣的是
  • MySQL数据库介绍
  • 印花税的征税范围口诀
  • 固定资产清理主动
  • 固定资产清理属于什么科目借方增加还是减少
  • 供货商少开发票如何记账?
  • 没有收到款项签认债有用吗
  • 企业转给法人的会计分录
  • 临时设施摊销属于什么资产
  • 企业汇算清缴需要提供什么资料
  • 企业生育津贴发放细则
  • 工业产值是指
  • 企业在非同一控制下的企业合并
  • 年末净利润为负数结转本年利润实例
  • 利息税额计算公式
  • xp磁盘检测命令
  • win1010586升级到最新
  • win7开机一直显示配置windows请勿关机怎么办
  • WIN7系统如何恢复出厂系统
  • windows7开机显示错误恢复进不去
  • win7旗舰版远程链接登录不上
  • 电脑因故障出现问题而启动
  • css svg滤镜
  • ReactNative之FlatList的具体使用方法
  • 浏览器url怎么看
  • putty自动退出
  • jquery 修改
  • Button.setOnClickListener(OnClickListener l) 原理
  • 开票系统开不了票
  • 化妆品的消费税率为
  • 广东省国家税务局电子发票系统,网络设置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设