5-11课:实现递归式快速排序算法

56 篇文章 6 订阅 ¥69.90 ¥99.00
本文详细介绍了递归式快速排序的原理和实现,包括分区函数的优化,对比了递归与迭代式快排在时间和空间复杂度上的差异,并提供了优化后的分区函数实现。
摘要由CSDN通过智能技术生成

终于到了要实现快速排序的时候了。

递归式快速排序

快速排序原理

我们先来回顾一下快速排序的原理,可分为“分”、“治”两步:

  1. 1.1 分区:将待排数列分成左区、轴和右区; 1.2 对分出来的左区和右区再分别进行分区,持续迭代。

  2. :当分出来的分区长度为 1 或 0 时,就无须再分了,至此,关于本区域的分区迭代停止。

从原理到实现

如果对应到程序中,2可以对应为一个判断条件,1.1 是分区函数,那么 1.2 呢?

关于 1.2,我们可以理解为继续进行分区。

比如,将 1.1 分出来的左区,再将左区分为左左区和左右区。如果左左区或左右区不满足长度为 1 或 0 的条件,还要继续对它(们)分区……对右区的操作亦如是。

因此 1.2 并不是简单的重复 1.1,而是援引整个算法本身——这正是递归适合处理的情况。

递归式快排的编程实现

enter image description here

所以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶锦鲤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值