冒泡排序和快速排序对比,为什么反复调用函数的快排更快

快速排序,说白了就是给基准数据找其正确索引位置的过程.
冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序每次只排序一个元素(通常是最末尾的),因此一万个元素第一次需要比较 9999 次,第二个元素需要比较 9998 个,以此类推,总共需要比较 1+2+3+...+9999 次。
快速排序第一次也需要比较 9999 次,但是因为其将数组分成两部分,一次快速排序分别调用两次快速排序,因此调用的两次快速排序在调用
时,都需要 4999 次的比较,故其规律是 1X9999+2X4999+4X2999+...+10000X1
通过比较可以发现,快速排序的相比于冒泡排序,比较的次数要少很多
当然,快速的代价就是不稳定,所谓排序的稳定性,就是指在排序过程中,在对a关键字排序后会不会改变其他关键字的顺序。
在比较有相同关键字序列的情况下,稳定的排序会将较早出现的元素排在前面,而不会是后面。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 排序(上):为什么插入排序比冒泡排序更受欢迎? 排序对于任何一个程序员来说,可能都不会陌生。你学的第一个算法,可能...
    GhostintheCode阅读 8,634评论 4 27
  • 一、 单项选择题(共71题) 对n个元素的序列进行冒泡排序时,最少的比较次数是( )。A. n ...
    貝影阅读 13,048评论 0 10
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,599评论 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 5,031评论 0 2
  • 最近,上至四十多岁的大妈下至十多岁的少女妹妹都在聊《知否知否》这部电视剧。当年红遍起点、晋江、红袖等等各大网络文学...
    苏语芷阅读 1,585评论 1 1

友情链接更多精彩内容