Backto Algo Index
综述
对于一个 Sorting Algo 的评价,一般有以下几个标准
- Time Complexity:Best,Worst, Average
不仅要知道三个时间复杂度,还要知道对应的数据情形。通常对于基于比较的 Sorting Algo,Best 就是顺序排列的,Worst 就是 逆序排列的,Average 就是随机排列的。因为不同的 Algo 在不同的情形下表现可能大不同个,因为我们需要根据业务的实际情况,pick the right one. - 时间复杂度的系数,常数,低阶
当用 Big-O 分析的时候,通常忽略这些细节,但是 Big-O 针对的是数据规模很大的情况下的增长趋势。而排序算法,很多情况下是限定规模的, 比如 10, 1000, 100万,因此这些被忽略的项需要加上才能比较不同algo 的优劣。 - 比较次数和交换(或移动)的次数
尤其是对于基于比较的排序算法,核心就两步,比较–交换, 统计次数尤为重要。 - algo 的内存消耗
也就是空间复杂度啦,如果是原地排序(sorted in place),空间复杂度就是 O ( 1 ) O(1) O(1). - 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 |

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

1501

被折叠的 条评论
为什么被折叠?



