gr8vyguy@Blogjava

          算法分析時(shí)為什么偏愛(ài)最差情況?

          算法(Algorithms)的復(fù)雜度(Complexity)是指運(yùn)行一個(gè)算法所需消耗的資源(時(shí)間或者空間)。同一個(gè)算法處理不同的輸入數(shù)據(jù)所消耗的資源也可能不同,所以分析一個(gè)算法的復(fù)雜度時(shí),主要有三種情況可以考慮,最差情況(Worst Case)下的,平均情況(Average Case)的, 最好情況(Best Case)下的。不管是在實(shí)際應(yīng)用中,還是計(jì)算機(jī)理論的研究中,大多都只考慮最差情況下的復(fù)雜度分析。為什么呢?這里給出四點(diǎn)原因,
          1. 最差情況下的復(fù)雜度是所有可能的輸入數(shù)據(jù)所消耗的最大資源,如果最差情況下的復(fù)雜度符合我們的要求,我們就可以保證所有的情況下都不會(huì)有問(wèn)題。
          2. 某些算法經(jīng)常遇到最差情況。比如一個(gè)查找算法,經(jīng)常需要查找一個(gè)不存在的值。
          3. 也許你覺(jué)得平均情況下的復(fù)雜度更吸引你,可是平均情況也有幾點(diǎn)問(wèn)題。第一,難計(jì)算,多數(shù)算法的最差情況下的復(fù)雜度要比平均情況下的容易計(jì)算的多,第二,有很多算法的平均情況和最差情況的復(fù)雜度是一樣的. 第三,什么才是真正的平均情況?如果你假設(shè)所有可能的輸入數(shù)據(jù)出現(xiàn)的概率是一樣的話,也是不合理的。其實(shí)多數(shù)情況是不一樣的。而且輸入數(shù)據(jù)的分布函數(shù)很可能是你沒(méi)法知道。
          4. 考慮最好情況的復(fù)雜度更是沒(méi)有意義。幾乎所有的算法你都可以稍微修改一下,以獲得很好的最好情況下的復(fù)雜度(要看輸入數(shù)據(jù)的結(jié)構(gòu),可以是O(1))。怎樣修改呢? 預(yù)先計(jì)算好某一輸入的答案,在算法的開(kāi)始部分判斷輸入,如果符合,給出答案。


          轉(zhuǎn)載請(qǐng)保留http://www.aygfsteel.com/xilaile/archive/2007/03/30/107374.html

          posted on 2007-03-29 22:52 gr8vyguy 閱讀(4364) 評(píng)論(1)  編輯  收藏 所屬分類: 計(jì)算機(jī)科學(xué)基礎(chǔ)

          評(píng)論

          # re: 算法分析時(shí)為什么偏愛(ài)最差情況? (內(nèi)含一個(gè)小問(wèn)題) 2007-04-02 06:06 liigo

          說(shuō)的很有道理,邏輯性強(qiáng)。  回復(fù)  更多評(píng)論   

          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          公告

        1. 轉(zhuǎn)載請(qǐng)注明出處.
        2. msn: gr8vyguy at live.com
        3. 常用鏈接

          留言簿(9)

          隨筆分類(68)

          隨筆檔案(80)

          文章分類(1)

          My Open Source Projects

          搜索

          積分與排名

          最新評(píng)論

          主站蜘蛛池模板: 虹口区| 仙桃市| 萝北县| 榆林市| 龙陵县| 谷城县| 宁河县| 延寿县| 永顺县| 石河子市| 建水县| 怀来县| 平潭县| 项城市| 台北县| 汾西县| 大埔县| 孟津县| 巧家县| 常宁市| 沅陵县| 闽侯县| 杭锦旗| 花莲市| 山东省| 乌苏市| 北碚区| 义乌市| 手游| 谢通门县| 长海县| 阿坝县| 罗城| 赣州市| 阿巴嘎旗| 鸡西市| 荣成市| 电白县| 孝感市| 北碚区| 米易县|