java資料結構與演算法學習 BF演算法

2021-08-16 09:41:10 字數 514 閱讀 9568

bf演算法(brute-force),是一種最基本的模式匹配演算法。

bf演算法的實現思想很簡單:

從目標串s 的第乙個字元起和模式串t的第乙個字元進行比較,若相等,則繼續逐個比較後續字元,否則從串s的第二個字元起再重新和串t進行比較。

依此類推,直至串t 中的每個字元依次和串s的乙個連續的字串行相等,則稱模式匹配成功,此時串t的第乙個字元在串s 中的位置就是t 在s中的位置,否則模式匹配不成功。

該演算法最壞情況下要進行m*(n-m+1)次比較,時間複雜度為o(m*n)。

//bf演算法

public class bf

int i = 0; //主串索引

int j = 0; //模式串索引

while (i < target.length() && j < reg.length())else

}//模式串到頭,返回成功,否則失敗

if (j == reg.length())else

}}

資料結構與演算法學習

我想重新學習一下資料結構與演算法,打好基礎。to measure is to know.我們用演算法複雜度t n 來表示演算法的效率,效能。t n 的取值 所有問題規模為n的問題例項中,將他們的計算成本進行總體的比較,取出最壞情況下的值。有幾點需要catch,1.演算法執行的時間,會根據程式語言,作...

java資料結構與演算法學習 漢諾塔

漢諾塔是遞迴分治思想不得不說的經典案例。漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之...

java資料結構與演算法學習 歸併排序

今天我們來記錄一下歸併排序。歸併排序的主要思想 將陣列分成兩半,將每一半排好序,然後分別在每一半陣列的開頭設定指標,進行比較,小的就放在輔助陣列中,該指標往下移,直到其中一邊的陣列走到頭,將剩餘的元素拷貝到輔助陣列中,返回陣列就是有序陣列。根據master公式o t ao t b o n d 可知,...