递归排序算法快速排序的实现过程

快速排序(Insertion Sort)也是一种递归排序算法

快速排序原理:先以列表中的任意一个数为基准(一般选头或尾),将列表分为左、右两个子列表。

左子列表的数要比基准数小,右子列表的数要比基准数大。然后继续把左子列表和右子列表按同样的方法继续分解、比较,直到分无可分。最后将左子列表(比基准数小)+基准数+右子列表(比基准数大)连接起来得到一个有序数列。

递归排序算法快速排序的实现过程

以数列[3,5,8,1,2,9,4,7,6]为例,最初的数列顺序如上图所示。

第一次分组:以最后一个元素6为基准将数列分成两组。分别从左右两端遍历数列,比6小的分在左边,比6大的分在右边。先从左向右遍历,当遇到比6大的元素时将该元素放到右边。同理从右向左遍历时,遇到比6小的元素放到左边。当全部元素被遍历之后,将左边数列,元素6,右边数列按顺序拼接成新的数组,此时元素6的位置固定。

递归排序算法快速排序的实现过程

递归处理左边子数列:以最后一个元素2为基准,比2小的分在左边子数列中,比2大的分在右边子数列中经过一轮分组后,元素2的位置已经固定,接下来继续递归的调用上述过程……

递归排序算法快速排序的实现过程

递归处理右边子数列:以最后一个元素9为基准,比9小的分在左边子数列中,比9大的分在右边子数列中经过一轮分组后,只会分成一组【8,7】,再次递归处理【8,7】,至此排序完毕。

递归排序算法快速排序的实现过程

快速排序的程序quicksort.py的代码如下:

def quicksort(ilist):less = [] # 小于基准元素的放到这个列表中equal = [] # 等于基准元素的放到这个列表中greater = [] # 大于基准元素的放到这个列表中if len(ilist) > 1:pivot = ilist[len(ilist)-1] # 取数组最后一个元素作为基准元素for x in ilist:if x < pivot: # 小于基准元素的放到列表less中less.append(x)elif x == pivot: # 等于基准元素的放到这个列表中equal.append(x)elif x > pivot: # 大于基准元素的放到列表greater中greater.append(x)return quicksort(less)+equal+quicksort(greater) # 将三部分拼接起来else: # 只有一个元素的时候直接返回return ilist

测试快速排序方法,代码如下:

递归排序算法快速排序的实现过程

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/366913.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2023年8月29日 15:37
下一篇 2023年8月29日 15:47

相关推荐

  • 分享网站SEO优化如何应对频繁的算法更新。

    面对算法的不断变化,有些站长们一方面显得有些沮丧气馁,另一方面还沉浸在失败的阴影中,当然辛辛苦苦做的排名没有了难免会有点难以接受,但是事实就是事实,既然都已经大势所趋了,就应该好好的方调整好自己的...

    2023年6月27日
    02
  • 分享python递归函数基例。

    Python中的递归函数是一种调用自身的函数,递归函数通常用于解决那些可以通过将问题分解为更小的相同类型的子问题来解决的问题,常见的递归问题包括计算阶乘、斐波那契数列、树的遍历等。 递归函数的工作原理是函...

    2024年7月26日
    02
  • 小编教你杭州SEO优化关于SEO算法的那些事。

    在seo领域中,早几年听得最多的都是SEO·的算法如何如何的,直到现在也依旧有不少人忠于SEO的算法。那么,今天小编就说说自己对SEO算法的一些看法,希望给做SEO的朋友们能有一些启发。 小编SEO主要从以下四个方面...

    2023年6月20日
    01
  • 网站优化细节和方式我们需要注意哪些问题?

    电商网站怎么设计?电商网站优化应该注意哪些细节?网站优化细节和方式我们需要注意哪些问题?哪些东西不能碰? (1):不要碰一些相对来说违法作弊的优化方式有的一些站长为了在短时间内提升排名,所以就可能会采用一...

    2022年5月24日
    0224
  • SEO相关细雨算法的一些详情问题

    百度的各种算法也比较多,细雨算法,其实就是针对百度页面标题作弊,比如说包含一些官网,一些文章标题堆砌关键词的情况,都可能会导致细雨的打击,关于细雨算法可能有的一些站长也不是特别了解,不知道关于细雨...

    2022年5月27日
    0296
  • AES加解密算法怎么实现。

    AES加解密算法是一种对称加密算法,广泛应用于数据加密和保护领域,它被广泛用于许多安全协议中,如SSL/TLS、IPsec等,下面将详细介绍AES加解密算法的实现过程。 1. 密钥生成: 需要生成一个密钥,AES算法支持128...

    2024年6月14日
    02
  • 什麽叫做排名算法?

    排名算法是搜索引擎用来对其索引中的列表进行评估和排名的规则。排名算法决定哪些结果是与特定查询相关的。大多效搜索引擎决定关健词排名的因素都超过100种以上,但最爲重要的壹些算法在各大搜索引擎部是通用的,...

    2014年1月12日
    0124
  • 分享清风算法3.0,继清风算法2.0再次整合升级。

    为规范下载行业生态、保障百度搜索用户下载体验,百度搜索对外发布《百度搜索下载站质量规范》。 同时,为了保证搜索用户体验、促进下载行业生态正向发展,百度将于2022年10月下旬对清风算法进行升级。 清风算法3...

    2023年6月20日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息