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

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

作者: 光年之外iii | 来源:发表于2019-10-27 11:31 被阅读0次

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

相关文章

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

    快速排序,说白了就是给基准数据找其正确索引位置的过程.冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大...

  • OC中的排序算法

    目录 冒泡排序、快速排序、选择排序、插入排序 冒泡 快排 选择 插入

  • JavaScript实现排序算法

    实现了冒泡,选择,插入,快排,希尔,归并 冒泡排序 选择排序 插入排序 快速排序 希尔排序 归并排序

  • 排序

    1.冒泡排序,2.选择排序,3.快速排序,4.插入排序 几种常见的排序方式,速度是快排 >插入> 冒泡> 选择例子...

  • 常见排序的java实现

    常见排序的java实现 常见排序java实现 插入排序(二分插入排序) 希尔排序 快速排序(三数中值快排) 冒泡排...

  • 排序 -- 快排/归并

    聊聊排序吧 冒泡排序 选择排序 插入排序 快速排序 归并排序 计数排序 桶排序 堆排序 本篇 快排/归并 之前的三...

  • 2019-05-24 七大经典排序算法

    1. 冒泡排序 1.1 冒泡升级版 2. 堆排序 3. 插入排序 4. 合并排序 5. 快速排序(快排) 6. 选...

  • 排序算法

    冒泡排序 选择排序 插入排序二分插入排序希尔排序 堆排序 归并排序 快速排序 交换排序类:冒泡排序快速排序 选择排...

  • 2019-10-13 快速排序和堆排序

    1.快速排序双边循环发和单边循环法 2.堆排序 3.快排和堆排序的对比(1)快排的堆排序的时间复杂度都是(nlog...

  • Objective-c各种排序算法

    Objective-C排序算法 快排 快速排序是面试中经常会被问的一个排序算法。一般要求手写。快排是对冒泡排序的一...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/bapyvctx.html