邊城愚人

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

            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 閱讀(12246) | 評論 (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 閱讀(9686) | 評論 (6)  編輯

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

          主站蜘蛛池模板: 临安市| 黄平县| 屏东市| 南宫市| 富平县| 科技| 且末县| 宜春市| 高清| 左权县| 永昌县| 剑河县| 丰城市| 库尔勒市| 万盛区| 正镶白旗| 余庆县| 姜堰市| 礼泉县| 赤城县| 安福县| 华宁县| 手机| 乌审旗| 怀宁县| 海口市| 娱乐| 历史| 芜湖市| 孝昌县| 黄平县| 牙克石市| 德化县| 宁武县| 阜新| 贵港市| 新沂市| 灵璧县| 明星| 丘北县| 桐庐县|