数据结构论坛

首页 » 分类 » 问答 » 基础数据结构与算法之11种排序算法C语
TUhjnbcbe - 2023/7/1 21:13:00
北京皮肤科的医院 http://pf.39.net/bdfyy/bdfzd/150714/4655748.html

0-概述

排序算法分类

常见的排序算法可以分为以下两大类:

比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(n*logn),因此也称为非线性时间比较类排序。

非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。

对于比较类排序,其时间复杂度不能突破O(n*logn),因为所有的比较动作可以构成一棵比较树(三叉树,每个分支对应,=,),N个元素的全排列数目为N!,即树中节点的个数为N!,则树高为log3(N!),而数学上可以证明:log3(N!)=Ω(n*logn),这就是基于比较的排序算法的时间复杂度下界。

对于非比较类排序,其可以达到线性时间复杂度,不过这一般是通过牺牲空间来换取的。

1
查看完整版本: 基础数据结构与算法之11种排序算法C语