美文网首页
2.8 分析十种排序算法的稳定性

2.8 分析十种排序算法的稳定性

作者: Aurochsy | 来源:发表于2019-03-22 14:25 被阅读0次

Chapter2: 查找与排序

8. 分析十种排序算法的稳定性

1. 什么是算法的稳定性

  • 稳定

    如果a=b, a原来在b前面, 排序之后a仍然在b前面

  • 不稳定

    如果a=b, a原来在b前面, 排序之后a可能在b之后

2. 十种排序算法的稳定性

  • 堆排序、快速排序、希尔排序、直接选择排序不是稳定的排序算法;

    比如希尔排序,由于前面进行的是分组的插入排序,两个相等的值可能分再不同的组,进行插入排序后相对的前后位置可能会发生改变

    选择排序是循环选择最小的数直接放在最前面,所以可能会将后面的相同的值直接调到前面(其实如果是从右往左扫描,只有在找到更大值才交换的话,相对位置也是不变的才对呀...(这个问题网上也有争议...)

  • 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。

    比如冒泡排序,是比较温和的排序,有两两之间的比较,所以相对顺序不变

    直接插入排序也是,最靠前的无序元素挨个跟前面的有序元素列表比较,找到 >= 它的就插在后面,相对位置也是不变的

3. 参考资料

[1] 八大排序算法稳定性分析

[2] 常见排序算法的分析与实现(10种)

相关文章

  • 2.8 分析十种排序算法的稳定性

    Chapter2: 查找与排序 8. 分析十种排序算法的稳定性 1. 什么是算法的稳定性 稳定如果a=b, a原来...

  • 2020-04-30-排序算法

    冒泡排序 直接选择排序 插入排序 快速排序 参考 算法学习笔记17-经典排序算法八大排序算法稳定性分析

  • 左神初级算法课程第三讲笔记-排序算法稳定性

    排序算法稳定性 排序算法稳定性:即相同的值排序后还是按照原有的次序 三个O(N): 冒泡算法:可以实现稳定性,大数...

  • 如何分析一个排序算法?

    1.学习排序算法的思路?明确原理、掌握实现以及分析性能。2.如何分析排序算法性能?从执行效率、内存消耗以及稳定性3...

  • 排序算法

    十种常见排序算法:

  • 算法收集

    十种常见排序算法

  • 常见十大排序算法概述

    排序算法概述 网上常见的排序算法有十种:冒泡排序、快速排序、插入排序、希尔排序、选择排序、堆排序、归并排序、计数排...

  • 第7章 算法

    排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两...

  • 算法基础之各种排序算法思想图解

    文章目录 排序算法比较排序算法稳定性选择排序冒泡排序插入排序希尔排序快速排序归并排序GitHub:https://...

  • 排序和查找

    排序算法 排序的稳定性image.png 影响排序算法的几个因素 时间性能 辅助空间 算法复杂性 冒泡排序 时间复...

网友评论

      本文标题:2.8 分析十种排序算法的稳定性

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