排序算法总结Sorting Algo

本文总结了排序算法的评价标准,包括时间复杂度的最佳、最坏和平均情况,以及在不同数据规模下的实际表现。此外,还强调了比较次数、交换次数、内存消耗和稳定性在选择排序算法时的重要性。文中列举了经典排序算法,如冒泡排序、插入排序、选择排序、归并排序和快速排序。

Backto Algo Index

综述

对于一个 Sorting Algo 的评价,一般有以下几个标准

  1. Time Complexity:Best,Worst, Average
    不仅要知道三个时间复杂度,还要知道对应的数据情形。通常对于基于比较的 Sorting Algo,Best 就是顺序排列的,Worst 就是 逆序排列的,Average 就是随机排列的。因为不同的 Algo 在不同的情形下表现可能大不同个,因为我们需要根据业务的实际情况,pick the right one.
  2. 时间复杂度的系数,常数,低阶
    当用 Big-O 分析的时候,通常忽略这些细节,但是 Big-O 针对的是数据规模很大的情况下的增长趋势。而排序算法,很多情况下是限定规模的, 比如 10, 1000, 100万,因此这些被忽略的项需要加上才能比较不同algo 的优劣。
  3. 比较次数和交换(或移动)的次数
    尤其是对于基于比较的排序算法,核心就两步,比较–交换, 统计次数尤为重要。
  4. algo 的内存消耗
    也就是空间复杂度啦,如果是原地排序(sorted in place),空间复杂度就是 O ( 1 ) O(1) O(1).
  5. algo 的稳定性
    一个sorting algo 具有稳定性指的是,排序前后相等的元素相对位置不变。否则,就是不稳定的 sorting algo。例如对于一组数据3,5,6,3,1, 排序后是1,3,3,5,6 这里面两个相等的 3 相对位置是否改变了,决定了使用的algo 是否具有稳定性. 这个在实际业务中很重要, 因为我们总是需要根据多个不同的度量多层次排序, 可不希望一个层次排好了,其他层次全乱了.

经典的排序算法

Sorting Algo Time Complexity Based on comparsion? DESC
BubbleSort 冒泡排序 O ( n 2 ) O(n^2) O(n2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值