【Algo】常用排序算法的比较与总结

Backto Data structure & Algorithm Index

这里写图片描述

这里写图片描述

几个总结

  • 对于小数据量,三个 O ( n 2 ) O(n^2) O(n2) 的 algo足矣 – BubbleSort, InsertionSort,SelectionSort。但是 SelectionSort non-stable, 很少用。BubbleSort 的核心操作 swap 需要三个指令,相比而言,Insertion 的核心操作move只需要一个指令,所以 InsertionSort 比 BubbleSort 更常用。在平时的小代码中,手写的话就写 InsertionSort就好了。
  • 对于大数据量,两个 O ( n log ⁡ n ) O(n\log n) O(nlogn) 的 algo 就更常用了 – MergeSort 和 QuickSort. 二者都是运用了分治思想,都是用递归实现,但是 MergeSort 的 Merge 部分,需要开辟一个临时数组,从而使得 MergeSort 的空间复杂度变成了 O ( n ) O(n) O(n), 不如 Sort-in-place 的QuickSort 的 O ( 1 ) O(1) O(1)复杂度。但是, MergeSort 是stable 的,而 QuickSort 因为 swap来swap去, 是 unstable的. 因此, 如何取舍, 看实际业务需求吧.

Ref

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值