麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JavaScript中數據結構與算法(四):串(BF)

2019-11-02 15:52:50
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了JavaScript中數據結構與算法(四):串(BF),串是由零個或多個字符組成的有限序列,又叫做字符串,本文著重講解了BF(Brute Force)算法,需要的朋友可以參考下

  串是由零個或多個字符組成的有限序列,又叫做字符串

  串的邏輯結構和線性表很相似的,不同的是串針對是是字符集,所以在操作上與線性表還是有很大區別的。線性表更關注的是單個元素的操作CURD,串則是關注查找子串的位置,替換等操作。

  當然不同的高級語言對串的基本操作都有不同的定義方法,但是總的來說操作的本質都是相似的。比如javascrript查找就是indexOf, 去空白就是trim,轉化大小寫toLowerCase/toUpperCase等等

  這里主要討論下字符串模式匹配的幾種經典的算法:BF、BM、KMP

  BF(Brute Force)算法

  Brute-Force算法的基本思想:

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

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

  可見BF算法是一種暴力算法,又稱為樸素匹配算法或蠻力算法。

  主串 BBC ABB ABCF

  子串 ABC

  在主串中找出子串的位置,對應了其實就是javascript的indexOf查找方法的實現了

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 var sourceStr = "BBC ABB ABCF"; var searchStr = "ABC";   function BF_Ordinary(sourceStr, searchStr) { var sourceLength = sourceStr.length; var searchLength = searchStr.length; var padding = sourceLength - searchLength; //循環的次數 //BBC ABB ABCF =>ABC => 搜索9次 for (var i = 0; i <= padding; i++) { //如果滿足了第一個charAt是相等的 //開始子循環檢測 //其中sourceStr的取值是需要疊加i的值 if (sourceStr.charAt(i) == searchStr.charAt(0)) { //匹配成功的數據 var complete = searchLength; for (var j = 0; j < searchLength; j++) { if (sourceStr.charAt(i + j) == searchStr.charAt(j)) { --complete if (!complete) { return i; } } } } } return -1; }

  BF算法就是簡單粗暴,直接把BBC ABB ABCF母串的每一個字符的下表取出來與模式串的第一個字符匹配,如果相等就進去字串的再次匹配

  這里值得注意:

  1:最外圍循環的次數sourceLength - searchLength,因為我們匹配的母串至少要大于等于子串

  2:在子串的繼續匹配中,母串的起點是需要疊加的(i+j)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲一区二区三区在线看 | 91网视频| 亚洲成人国产 | 国产一级毛片视频在线! | 欧美精品一级片 | 亚洲成人综合网站 | 久久精品一区二区三区不卡牛牛 | 日韩视频一区二区三区在线观看 | 中文字幕综合 | www.99久| 禁漫天堂久久久久久久久久 | 日韩毛片在线看 | 成人福利网 | 特一级毛片| 免费看成人av | 天天干导航| 国产一区二区三区高清 | 久色伊人 | 国产精品久久在线观看 | 亚洲国产网址 | 自拍偷拍亚洲图片 | 一区二区免费看 | 国产福利不卡一区二区三区 | 亚州精品在线视频 | 日本不卡二区 | 有色视频在线观看 | 国产xxxx岁13xxxxhd| 久久金品| 一级免费黄视频 | 羞羞网站在线观看入口免费 | 九九热免费精品视频 | 国产噜噜噜噜噜久久久久久久久 | 在线成人亚洲 | 黄污网站在线观看 | av成人免费观看 | 欧美成人一区免费视频 | 成人精品aaaa网站 | 国产1区在线| 中国av免费在线观看 | 成人电影毛片 | 青青草成人影视 |