• Brute-Force算法分析与实现 - [方法论]

    2009-04-15

    分类: 方法论

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://skyofcai.blogbus.com/logs/37931646.html

    简称BF算法。很好记忆的。

    该方法的优点是:算法简单明朗,便于实现记忆。

    缺点是:进行了回溯,效率不高,而这些都是没有必要的。

    该方法非常简单,函数声明为: int bfLocate (const char* s, const char* t);

    s为目标串,t为模式串。该方法的主导思想是在s串中顺序搜索定位t串。

    C语言实现代码如下:

     

        (声明: 该代码经过测试,但不能排除一切bug。任何人使用且发现bug并造成的一切损失,将由使用本代码者承担全部责任,而本作者不承担任何责任。该代码仅供学习交流。若能将bug报告给本作者,在下会感激不尽。)

     

    int bfLocate(const char *s, const char *t)

    {

    int i, j; //i指s, j指t

    int s_len, t_len;

    i = j = 0;

                    s_len = strlen(s);

    t_len = strlen(t);

    while (i < s_len && j < t_len)

                    {

    if (s[i] == t[j])

                       {

    i++;

                           j++;

                       }

                       else

                       {

                         i = i - j + 1; //指针回溯到s串中的上一次匹配的首字符的下一个相邻的字符

                            j = 0;

        }

    }//while

    if (j >= t_len)

    return (i-j);

    return -1;

    }//bfLocate


    收藏到:Del.icio.us




    评论

  • 写的不错,坐着沙发慢慢看 :)
    橙黄桔绿回复怎样说:
    你的鼓励是我不断前进的巨大动力。非常谢谢。
    2009-04-16 01:35:07