当前位置: 首页 > news >正文

张槎网站建设品牌策划公司

张槎网站建设,品牌策划公司,北辰天津网站建设,中企动力是干啥的Sunday算法是Daniel M.Sunday于1990年提出的一种字符串模式匹配算法。 核心思想:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配&…

Sunday算法是Daniel M.Sunday于1990年提出的一种字符串模式匹配算法。

核心思想:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。

Sunday算法思想跟BM(Boyer Moore)算法很相似,在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符。如果该字符没有在匹配串中出现则直接跳过,即:移动步长=匹配串长度+1;否则,同BM算法一样,其移动步长=匹配串中最右端的该字符到末尾的距离+1
 

本代码运行效果:

源代码:

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;

namespace Legalsoft.Truffer.Algorithm
{
    public static partial class PatternSearch
    {
        /// <summary>
        /// 字符位置表
        /// </summary>
        private static int ALPHA_BET = 512;

        /// <summary>
        /// 计算字符的出现位置表
        /// </summary>
        /// <param name="pattern"></param>
        /// <returns></returns>
        private static int[] ComputeOccurence(string pattern)
        {
            int[] table = new int[ALPHA_BET];
            for (char a = (char)0; a < (char)ALPHA_BET; a++)
            {
                table[(int)a] = -1;
            }

            for (int i = 0; i < pattern.Length; i++)
            {
                char a = pattern[i];
                table[(int)a] = i;
            }
            return table;
        }

        /// <summary>
        /// 字符串匹配算法(模式搜索)Sunday算法
        /// </summary>
        /// <param name="text"></param>
        /// <param name="pattern"></param>
        /// <returns></returns>
        public static List<int> Sunday_Search(string text, string pattern)
        {
            List<int> matchs = new List<int>();

            int i = 0;
            int[] table = ComputeOccurence(pattern);
            while (i <= text.Length - pattern.Length)
            {
                int j = 0;
                while (j < pattern.Length && text[i + j] == pattern[j])
                {
                    j++;
                }
                if (j == pattern.Length)
                {
                    matchs.Add(i);
                }
                i += pattern.Length;
                if (i < text.Length)
                {
                    i -= table[(int)text[i]];
                }
            }
            return matchs;
        }
    }
}

 ——————————————————————

POWER BY 315SOFT.COM &
TRUFFER.CN

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm
{public static partial class PatternSearch{/// <summary>/// 字符位置表/// </summary>private static int ALPHA_BET = 512;/// <summary>/// 计算字符的出现位置表/// </summary>/// <param name="pattern"></param>/// <returns></returns>private static int[] ComputeOccurence(string pattern){int[] table = new int[ALPHA_BET];for (char a = (char)0; a < (char)ALPHA_BET; a++){table[(int)a] = -1;}for (int i = 0; i < pattern.Length; i++){char a = pattern[i];table[(int)a] = i;}return table;}/// <summary>/// 字符串匹配算法(模式搜索)Sunday算法/// </summary>/// <param name="text"></param>/// <param name="pattern"></param>/// <returns></returns>public static List<int> Sunday_Search(string text, string pattern){List<int> matchs = new List<int>();int i = 0;int[] table = ComputeOccurence(pattern);while (i <= text.Length - pattern.Length){int j = 0;while (j < pattern.Length && text[i + j] == pattern[j]){j++;}if (j == pattern.Length){matchs.Add(i);}i += pattern.Length;if (i < text.Length){i -= table[(int)text[i]];}}return matchs;}}
}

http://www.yayakq.cn/news/723019/

相关文章:

  • 邯郸做网站推广多少钱股票网站怎么做动态表格
  • 北京矿建建设集团有限公司网站无锡整站百度快照优化
  • 做的好的c2c网站做一个h5需要多少钱
  • 商城网站建设要多少钱企业工商信息查询接口
  • 服务器win7网站建设2022重大时政热点事件简短
  • 邯郸wap网站建设价格途牛网站大数据建设
  • 网站建设方案合同厦门小程序开发公司排名
  • 商务网站建设的一般流程图南通网站建设 南大街
  • 网站备案要收费吗新都网站开发
  • wordpress网站百度数据北京网站建设 网络安全
  • 淘宝客网站推广位怎么做wordpress手机文章
  • 汕头模板建站软件网站建设和网站设计一样吗
  • 网站界面尺寸wordpress站群 优化
  • 静态网站素材网站开发具体工作有那些
  • 关于建设二级网站的报告免费网站建设空间
  • 在家用服务器做网站网站租用服务器费用
  • 建网站收费科技展馆设计效果图
  • 网站上传到虚拟服务器wordpress调用子栏目
  • 网站中的二级菜单怎么做23新会网页制作公司
  • 网站开发常见技术问题专业网站建设服务商
  • 昆明网站建设SEO公司兼职网站编辑怎么做
  • 一分钟建站淘宝客怎么自建网站做推广
  • 怀柔网站制作网页设计模板免费网站
  • 手机端访问 php网站互联网创业平台
  • 近五年网站开发参考文献财务系统
  • 新网官方网站无锡手机网站
  • 宁波海曙区建设局网站wordpress 图片缩放
  • 中国电子系统建设三公司网站公司的网站怎么运营
  • 妇科医院手机网站源码网站双线选择
  • 制作个人网站西安百度提升优化