邊城愚人

          如果我不在邊城,我一定是在前往邊城的路上。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            31 隨筆 :: 0 文章 :: 96 評論 :: 0 Trackbacks

          DS&Algorithms

               摘要: 哈夫曼樹又稱最優二叉樹,是一種帶權路徑長度最短的二叉樹。所謂樹的帶權路徑長度,就是樹中所有的葉結點的權值乘上其到根結點的路徑長度(若根結點為0層,葉結點到根結點的路徑長度為葉結點的層數)。樹的帶權路徑長度記為WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln),N個權值Wi(i=1,2,...n)構成一棵有N個葉結點的二叉樹,相應的葉結點的路徑長度為Li(i=1,2,...n)。可以證明哈夫曼樹的WPL是最小的。
          構造哈夫曼樹的算法如下:
          1)對給定的n個權值{W1,W2,W3,...,Wi,...,Wn}構成n棵二叉樹的初始集合F={T1,T2,T3,...,Ti,..., Tn},其中每棵二叉樹Ti中只有一個權值為Wi的根結點,它的左右子樹均為空。
          2)在F中選取兩棵根結點權值最小的樹作為新構造的二叉樹的左右子樹,新二叉樹的根結點的權值為其左右子樹的根結點的權值之和。
          3)從F中刪除這兩棵樹,并把這棵新的二叉樹同樣以升序排列加入到集合F中。
          4)重  閱讀全文
          posted @ 2007-06-21 08:23 kafka0102 閱讀(12260) | 評論 (7)  編輯

               摘要: 設有主串s和子串t,子串t定位是指在主串s中找到一個與子串t相等的子串。通常把主串s稱為目標串,把子串t稱為模式串,因此定位也稱作模式匹配。模式匹配成功是指在目標串s中找到一個模式串t。

          傳統的字符串模式匹配算法(也就是BF算法)就是對于主串和模式串雙雙自左向右,一個一個字符比較,如果不匹配,主串和模式串的位置指針都要回溯。這樣的算法時間復雜度為O(n*m),其中n和m分別為串s和串t的長度。

          KMP算法是由Knuth,Morris和Pratt等人共同提出的,所以成為Knuth-Morris-Pratt算法,簡稱KMP算法。KMP算法是字符串模式匹配中的經典算法。和BF算法相比,KMP算法的不同點是匹配過程中,主串的位置指針不會回溯,這樣的結果使得算法時間復雜度只為O(n+m)。下面說說KMP算法的原理。  閱讀全文
          posted @ 2007-06-17 22:14 kafka0102 閱讀(9700) | 評論 (6)  編輯

               摘要: 網上看到一道java算法題,題目如下: 用1,2,2,3,4,5,這六個數字,用java寫一個main函數,打印出所有不同的排列,如:512234,412345等,要求:“4”不能排第3位,“1”與“5”不能相連。  閱讀全文
          posted @ 2007-03-13 09:06 kafka0102 閱讀(4537) | 評論 (12)  編輯

          主站蜘蛛池模板: 三台县| 青铜峡市| 大竹县| 通辽市| 加查县| 海安县| 沂南县| 丰顺县| 柳州市| 永德县| 得荣县| 孙吴县| 本溪市| 广宗县| 巴楚县| 德钦县| 丹江口市| 邹城市| 灵石县| 福海县| 定南县| 望都县| 资兴市| 西乌| 沅江市| 育儿| 铅山县| 湟中县| 宁都县| 达州市| 中阳县| 宣城市| 尼玛县| 龙胜| 汉寿县| 普宁市| 都匀市| 姚安县| 河间市| 城市| 周至县|