算法系列排序算法下篇--如何超越排序算法下界

Posted robert_chao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列排序算法下篇--如何超越排序算法下界相关的知识,希望对你有一定的参考价值。

概述

算法系列(四)排序算法中篇--归并排序和快速排序一文中,我们介绍了归并排序和快速排序,最坏的情况下,最快的排序算法的时间复杂度是O(nlogn),是否有更好的算法呢?到目前为止,没有特殊的规则,O(nlogn)已经是最好的排序算法了,也就是说通用排序算法的时间复杂度下界就是O(nlogn)。如果限定一些规则,是可以打破这个下界的。下面说一下尽在O(n)时间内就能实现对数组排序的算法。

基于排序的规则

基于什么样的规则才能突破排序的下界呢?我们需要分析一下排序消耗的时间。排序需要遍历,比较,交换。能否省略其中的一些步骤呢?这就是要定义的规则,通过规则减少排序步骤。下面举一个最简单的例子。

以上是关于算法系列排序算法下篇--如何超越排序算法下界的主要内容,如果未能解决你的问题,请参考以下文章

字符串算法—字符串排序(下篇)

插入排序(直接插入排序希尔排序);交换排序(冒泡排序快速排序);选择排序(简单选择排序堆排序);归并排序和基数排序;基于关键词比较的排序算法下界分析

算法系列 - 快速排序

排序算法

经典排序算法

[Algo][July]基于比较排序的算法下界是O(nlogn)