美文网首页
8种排序算法速记

8种排序算法速记

作者: 向布谷鸟说早安 | 来源:发表于2017-02-12 19:07 被阅读68次

排序算法的稳定性

排序算法的稳定性是指两个相等的元素在排序前后其相对位置是不变的。而与时间复杂度没有直接关系,所以要注意区分相关的概念。
稳定:冒(冒泡排序)直(直接插入排序)归(归并排序)基(基数排序,不常用)
不稳定:选(选择排序)希(希尔排序)快(快速排序)堆(堆排序)

常见的6种排序算法的平均时间复杂度分析

冒n2直n2
归nlog2n
选n2快nlog2n
堆nlog2n

排序时间复杂度与初始状态是否有关(循环次数)

归并,选择排序,堆排序,由于平均最差相同,所以初始顺序不影响其排序复杂度选择

排序比较次数与初始状态是否有关

算法性能与初始状态是否有关

直接插入,归并,快排,堆有关
冒泡,选择无关

初始序列基本有序的情况

冒泡n最好 直接插入n最好
快排n2最差

空间复杂度

只有快排的空间复杂度,和堆排序的空间复杂度比较多堆排序需要额外的辅助空间n
快排的空间复杂度,如果就地快排1
使用递归平均是logn,最差情况,退化成冒泡是n

附:


上图有错:快排的空间复杂度,如果就地快排1
使用递归平均是logn,最差情况,退化成冒泡是n

相关文章

  • 8种排序算法速记

    排序算法的稳定性 排序算法的稳定性是指两个相等的元素在排序前后其相对位置是不变的。而与时间复杂度没有直接关系,所以...

  • java实现快速排序、归并排序、希尔排序、基数排序算法...

    快速排序算法 归并排序算法 希尔排序算法 基数排序算法

  • web开发需要知道的几个算法

    算法分类 快速排序算法 深度优先算法 广度优先算法 堆排序算法 归并排序算法

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • 基础☞排序

    三个基础排序之 冒泡,选择,直接插入排序 怎样理解并且快速记忆?对于排序,理解并快速记忆的方法即是用生活实例形象化...

网友评论

      本文标题:8种排序算法速记

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