J2EE之巔

           

          算法的時間復雜度

           

          相信大家對于算法的時間復雜度O都不會陌生,不過你知道一個算法的時間復雜度是如何計算出來的嗎?

          以前在學習算法和數據結構的時候,對于每種算法的復雜度都是死記的并沒有真正的去研究他們是如何計算出來,最近突然對算法產生了興趣,迫使自己研究了一下算法復雜度的計算方法。

          概念

          O表示法表示時間復雜性,注意它是某一個算法的時間復雜性。大O表示只是說有上界,由定義如果f(n)=O(n),那顯然成立f(n)=O(n^2),它給你一個上界,但并不是上確界,但人們在表示的時候一般都習慣表示前者

          另外除了這個官方概念,個人認為大O表示的是問題規模n和算法中語句執行次數的關系。

          以二分查找為例,我們求解它的時間復雜度

          1 設規模為n個元素時,要執行T(n)次

          T(n)=T(n/2)+1

          T(n)=[T(n/4)+1]+1

          T(n)=T(n/2^m)+m

          n=2^m

          T(n)=T(1)+log2n

          T(1)=1

          所以其算法復雜度為O(log2n)

          posted on 2010-06-18 15:26 超越巔峰 閱讀(3589) 評論(1)  編輯  收藏 所屬分類: Computer Science

          評論

          # re: 算法的時間復雜度 2010-06-22 10:43 愛之谷

          所以其算法復雜度為O(log2n)  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(12)

          隨筆分類(54)

          隨筆檔案(59)

          文章分類(2)

          文章檔案(1)

          相冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 五台县| 礼泉县| 共和县| 东港市| 海阳市| 腾冲县| 宣武区| 拜泉县| 若尔盖县| 黔南| 鸡东县| 淮北市| 旺苍县| 新田县| 蓬安县| 泸定县| 新安县| 北安市| 乌兰察布市| 荣成市| 烟台市| 板桥市| 岳池县| 固阳县| 图木舒克市| 麻栗坡县| 建瓯市| 镇赉县| 华宁县| 新乐市| 万宁市| 奉贤区| 城固县| 镇赉县| 丘北县| 黔东| 临夏市| 鸡泽县| 体育| 松桃| 和政县|