list 排序_最常用的五种排序算法

排序算法是平时开发和工作中经常遇到的,今天为大家总结了五种最常用的排序算法,每一种算法都附带一张排序过程的动图,让大家更加直观的了解排序算法实现思想。

数据交换的公共方法

function 

冒泡排序(Bubble Sort)

冒泡排序算法,它是最慢的排序算法之一,但也是一种容易实现的排序算法。比较相邻的数据

d4670c487c62bb2df991b0d094d0669d.gif
function 

选择排序(Selection Sort)

选择排序从数组的开头开始,将第一个元素和其他元素进行比较。检查完所有元素后,最小的元素会被放到数组第一位置,然后算法会从第二的位置继续。一直进行,当进行到数组的倒数第二个位置时,所有的数据便会完成排序
在时间复杂度上表现最稳定的排序算法之一,因为无论什么数据进去都是O(n²)的时间复杂度。。。所以用到它的时候,数据规模越小越好

1fc8cbe9d3de94b397be99d90e924978.gif
function 

归并排序(Merge Sort)

作为一种典型的分而治之思想的算法应用,归并排序的实现有两种方法:

  1. 自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第2种方法)
  2. 自下而上的迭代

205c0418f9d84d1c80676e97963f2b93.gif
function 

快速排序(Quick Sort)

又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。快速排序的名字起的是简单粗暴,因为一听到这个名字你就知道它存在的意义,就是快,而且效率高! 它是处理大数据最快的排序算法之一了。虽然Worst Case的时间复杂度达到了O(n²),但是人家就是优秀,在大多数情况下都比平均时间复杂度为O(n log n) 的排序算法表现要更好
快速排序的最坏运行情况是O(n²),比如说顺序数列的快排。但它的平摊期望时间是O(n log n) ,且O(n log n)记号中隐含的常数因子很小,比复杂度稳定等于O(n log n)的归并排序要小很多。所以,对绝大多数顺序性较弱的随机数列而言,快速排序总是优于归并排序
function 

堆排序(Heap Sort)

堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:

  1. 大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列
  2. 小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列

31bbe04c76af709eec84b2947eb7d577.gif
var 

❤️关注+点赞+收藏+评论+转发❤️,原创不易,鼓励笔者创作更好的文章

关注公众号前端码头,获取独家学习路线+博主私人微信,更多前端小干货等着你喔

780a98f1494b55a46e6ffb97931079bf.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值