算法导论2.3-7
2010-05-05 11:46
260 查看
Q:
请给出一个运行时间为θ(nlgn)的算法,使之能在一个由n个整数构成的集合S和另一个整数X时,判断出S中是否存在有两个其和等于X的元素。
A: 先对S[1 TO N]进行合并排序--------------------------------θ(nlgn)
FOR a <- [1 TO N-1]-------------------------------------n-1
用二分法试图找到b(最坏情况时),使得b+a==x---------θ(nlgn)
FOR a <- [1 TO N-1]-------------------------------------n-1
用二分法试图找到b(最坏情况时),使得b+a==x---------θ(nlgn)
所以:
T(n)=θ(nlgn)
时间复杂度小结:T(n)=θ(nlgn)
注意,下面函数图像差别是在n很大时,虽然下面n的范围是0-10,但其实这里省去了实际过程中的 c1nlgn与c2n^2的c1和c2,所以差别如此显著
在最坏情况下,插入排序与合并排序的对比:
另: 插入排序,选择排序:θ(n^2)
合并排序:θ(nlgn)
二分查找:θ(lgn)
合并排序:θ(nlgn)
二分查找:θ(lgn)
相关文章推荐
- 算法导论2.3-7
- 算法导论2.3-5二分查找
- 算法导论2.3-7习题
- 【算法导论】 2.3合并排序
- 从头看算法导论 习题2.3-7 深入分析
- 算法导论2.3-6
- 归并排序 (不采用哨兵) 算法导论2.3-2答案
- <算法导论>第二章 2.3设计算法
- 170916_算法导论学习(四)_2.3 设计算法_练习
- 170915_算法导论学习(三)_2.3 设计算法
- 算法导论 2.3-3
- 算法导论 2.3-5
- 【算法导论】第三版课后习题*2.3-7
- 算法导论 练习题 2.3-6
- 算法导论2.3-5二分法查找问题
- 「算法导论」:课后习题2.3-7求集合S中是否有两个元素的和为X
- 插入排序的递归实现和二分查找递归实现,算法导论2.3-4和2.3-5
- 编程之美 2.12 快速寻找满足条件的两个数 解法三证明 (算法导论 第二版 2.3-7 在n个元素的集合S中找到两个和为x的元素)
- 【算法导论】 第二章 插入排序、分治排序
- 一头扎进算法导论-shell排序