zoukankan      html  css  js  c++  java
  • Knuth-Morris-Pratt Search vs Boyer-Moore Search

    Reference

    [1] https://stackoverflow.com/questions/12656160/what-are-the-main-differences-between-the-knuth-morris-pratt-and-boyer-moore-sea?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

    [2] http://www.cs.utexas.edu/~moore/best-ideas/string-searching/kpm-example.html

    [3] http://www.cs.utexas.edu/~moore/best-ideas/string-searching/fstrpos-example.html

    Boyer-Moore's approach is to try to match the last character of the pattern instead of the first one with the assumption that if there's not match at the end no need to try to match at the beginning. This allows for "big jumps" therefore BM works better when the pattern and the text you are searching resemble "natural text" (i.e. English)

    Knuth-Morris-Pratt searches for occurrences of a "word" W within a main "text string" S by employing the observation that when a mismatch occurs, the word itself embodies sufficient information to determine where the next match could begin, thus bypassing re-examination of previously matched characters. (Source: Wiki)

    This means KMP is better suited for small sets like DNA (ACTG)

    Boyer-Moore technique match the characters from right to left, works well on long patterns. knuth moris pratt match the characters from left to right, works fast on short patterns.

  • 相关阅读:
    WPF PasswordBox不支持绑定解决方法
    获取当前日期是第几个星期
    WPF 事件触发命令
    EntityFramework使用动态Lambda表达式筛选数据
    C#发邮件
    Entity Framework 多对多查询的写法
    获取WPF窗口句柄
    C#调整图片亮度和对比度
    oracle 批量修改数据
    react前端自动化测试: jest + enzyme
  • 原文地址:https://www.cnblogs.com/codingforum/p/9151878.html
Copyright © 2011-2022 走看看