美文网首页
八大经典排序算法总结

八大经典排序算法总结

作者: 蜗牛滴追逐 | 来源:发表于2018-09-20 11:20 被阅读0次

1.算法排序的时间复杂度:
时间复杂度o(n^2)
冒泡排序,选择排序,插入排序
时间复杂度o(n*logn)
归并排序,快速排序,堆栈排序,希尔排序
时间复杂度o(n)
计数排序和基数排序

2.算法排序的空间复杂度
o(1)
冒泡排序,选择排序,插入排序,堆排序,希尔排序
o(nlogn)
快速排序
o(N)
归并排序
o(M)
计数排序和基数排序

3.稳定性:相同值的元素排序前和排序后值保持不变
稳定的排序算法:冒泡排序,插入排序,归并排序,计数排序,基数排序,
不稳定的排序算法:选择排序,快速排序,堆排序,希尔排序

选择排序不稳定例子.png

选择排序原因:在选择最小值和位置为0的数交换的时候产生

快速排序不稳定例子.png

快速排序原因:在随机选择相同值中间的数的,两边的相同值的不不是被划分到选择值得左边就是选择值的右边

堆排序不稳定例子.png

堆排序原因:在每次建立大根堆后,堆顶元素会换到最后的位置上去

希尔排序不稳定例子.png

希尔排序:步长为2时,第二个1跳两部,造成了不稳定

相关文章

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

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

  • iOS + 常用排序算法

    算练习吧参照的原文常用排序算法总结(一)八大排序算法

  • 排序算法

    十大经典排序算法Lua版八大排序算法C++/C#

  • 2020-04-30-排序算法

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

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • 面试常问的排序算法

    排序算法总结 排序是算法问题中的经典问题。为什么要总结排序算法呢?你懂的 : (假设所有的排序都是要求最终结果为:...

  • Swift的十大经典排序算法总结

    Swift的十大经典排序算法总结 排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排...

  • 排序算法

    一、相关排序算法 1、IOS 经典排序算法总结:https://www.jianshu.com/p/ba57f02...

  • iOS话题:算法-排序、二叉树-2020-05-13

    排序 排序是iOS算法中提及最多的话题,比较有名的有八大排序算法。 数据结构常见的八大排序算法(详细整理) 八大排...

  • 排序算法详解及OC实现

    今天我们来总结一下经典常用的排序算法。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而...

网友评论

      本文标题:八大经典排序算法总结

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