首页 > 代码库 > 普林斯顿大学算法课 Algorithm Part I Week 3 排序算法复杂度 Sorting Complexity
普林斯顿大学算法课 Algorithm Part I Week 3 排序算法复杂度 Sorting Complexity
计算复杂度(Computational complexity):用于研究解决特定问题X的算法效率的框架
计算模型(Model of computation):可允许的操作(Allowable operations)
成本模型(Cost model):操作数(Operation counts)
上界(Upper bound):最多的成本
下界(Lower bound):最少的成本
最优算法(Optimal algorithm):最有可能性的成本的算法(Algorithm with best possible cost guarantee for X)
举例:排序
计算模型:决策树(decision tree)
决策树的高度决定了耗费的时间
成本模型:比较(compares)
上界:归并排序是NlgN
下界:NlgN
最优算法:归并排序(MergeSort的时间上界达到排序算法的时间下界;但MergeSort耗费过多内存空间)
影响排序复杂性的因素
- 输入的起始顺序
- 如果输入较为有序,则我们可能不需要NlgN次的比较(在序列有序的情况下,插入排序只要比较N-1次)
- 重复元素
- 如果输入带有重复元素,则我们可能不需要NlgN次的比较(3路快排(3-way quicksort))
- 元素的数字属性(Digital properties of keys):我们可以用数字/特征比较(digit/character compares)来代替值比较(key compares)对数字和字符串进行比较
普林斯顿大学算法课 Algorithm Part I Week 3 排序算法复杂度 Sorting Complexity
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。