算法导论2.3-7
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)
所以:
????? T(n)=θ(nlgn)
?
時間復雜度小結:
注意,下面函數圖像差別是在n很大時,雖然下面n的范圍是0-10,但其實這里省去了實際過程中的 c1nlgn與c2n^2的c1和c2,所以差別如此顯著
在最壞情況下,插入排序與合并排序的對比:
注:高的一條是n^2
?
在最好情況下,插入排序時間復雜度θ(n),合并排序時間復雜度θ(nlgn)
注:高的一條為nlgn
另:
插入排序,選擇排序:θ(n^2)
合并排序:θ(nlgn)
二分查找:θ(lgn)
轉載于:https://www.cnblogs.com/jiangzhen/archive/2010/05/05/1727860.html
總結
- 上一篇: 人人开源项目搭建
- 下一篇: switchhost提示没有切换权限