亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#實現sunday算法實例

2020-01-24 03:11:09
字體:
來源:轉載
供稿:網友

因正則表達式搜索總是出現死循環,開始考慮改為其他搜索方式,因為.net自帶的IndexOf默認只能找到第一個或最后一個,如果要把全部的匹配項都找出來,還需要自己寫循環SubString,所以想找下有沒有現成的,就發現了在這個領域里,BM算法是王道,而sunday算法據說是目前最好的改進版,這一點我沒有從國外的網站尤其是wiki上找到印證,但中文談論sunday的文章很多,我就姑且認為它是最好的吧。

復制代碼 代碼如下:

public static int SundaySearch(string text, string pattern)
        {
            int i = 0;
            int j = 0;
            int m = pattern.Length ;

            int matchPosition = i;

            while (i < text.Length && j < pattern.Length)
            {
                if (text[i] == pattern[j])
                {
                    i++;
                    j++;
                }
                else
                {
                    if(m==text.Length-1)break;

                    int k = pattern.Length - 1;

                    while (k >= 0 && text[m ] != pattern[k])
                    {
                        k--;
                    }

                    int gap = pattern.Length - k;
                    i += gap;
                    m = i + pattern.Length;
                    if (m > text.Length) m = text.Length - 1;
                    matchPosition = i;
                    j = 0;
                }
            }

            if (i <= text.Length)
            {
                return matchPosition;
            }

            return -1;
        }


好了,現在測試下性能:
復制代碼 代碼如下:

public static void PerformanceTest()
        {
            StreamReader reader = new StreamReader("D://LogConfiguration.xml", Encoding.ASCII);
            string context = reader.ReadToEnd();
            string pattern = "xxxx";
            int count = 1000*10;

            Stopwatch watch=new Stopwatch();

            //watch.Start();
            //for (int i = 0; i < count; i++)
            //{
            //    int pos= Sunday.GetPositionFirst(context, pattern, true);
            //}
            //watch.Stop();
            //Console.WriteLine(watch.ElapsedMilliseconds);

            watch.Reset();
            watch.Start();
            for (int i = 0; i < count; i++)
            {
                int pos = context.IndexOf(pattern);
            }
            watch.Stop();
            Console.WriteLine(watch.ElapsedMilliseconds);

            watch.Reset();
            watch.Start();
            for (int i = 0; i < count; i++)
            {
                int pos = Sunday.SundaySearch(context, pattern);
            }
            watch.Stop();
            Console.WriteLine(watch.ElapsedMilliseconds);
        }


在可以找到匹配與不能找到匹配兩種情況下,sunday算法耗時大概是indexof的20%左右。算法確實有用。

但千萬不要使用substring來實現算法,那樣會新生成很多字符串中間變量,算法帶來的好處遠遠不如分配內存復制字符串的消耗大,注釋掉的部分就是使用substring實現的,比indexof慢很多。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图综合网| 国产日韩欧美在线观看| www.亚洲一区| 欧美日韩国产精品一区二区三区四区| 精品视频一区在线视频| 中文字幕日韩视频| 日本欧美国产在线| 色黄久久久久久| 日韩中文字幕在线播放| 欧美精品aaa| 亚洲最大av网| 欧美小视频在线观看| 国产一区二区欧美日韩| 九九久久久久99精品| 992tv成人免费视频| 久久精品成人欧美大片| 亚洲18私人小影院| 国产精品免费电影| 色综合男人天堂| 欧美美女操人视频| 欧美电影免费在线观看| 亚洲国产精品va在线看黑人动漫| 亚洲性视频网站| 97精品欧美一区二区三区| 91精品国产综合久久男男| 91在线无精精品一区二区| 精品中文视频在线| 日韩电影中文 亚洲精品乱码| 国产精品久久久久久久久久新婚| 国产精品国内视频| 精品福利樱桃av导航| 国产精品96久久久久久| 国产精品自产拍在线观看| 精品成人av一区| 精品久久久一区| 理论片在线不卡免费观看| 黄色成人av在线| 日韩av在线影视| 亚洲a∨日韩av高清在线观看| 日韩视频中文字幕| 精品国产一区二区三区久久| 色综合久综合久久综合久鬼88| 日韩电影在线观看中文字幕| 在线视频日韩精品| 欧美在线观看网站| 欧美午夜xxx| 中文字幕无线精品亚洲乱码一区| 91精品国产91久久久久久最新| 国产亚洲欧美一区| 亚洲一区二区三区久久| 中文字幕日韩欧美精品在线观看| 国产精品一区二区三区久久| 亚洲国产精久久久久久| 爽爽爽爽爽爽爽成人免费观看| 欧美黑人巨大精品一区二区| 国产一区二区三区视频在线观看| 深夜成人在线观看| 一区二区三区日韩在线| 日韩综合中文字幕| 成人国产亚洲精品a区天堂华泰| 日韩成人中文字幕在线观看| 高潮白浆女日韩av免费看| 亚洲精品自拍偷拍| 日韩精品中文字幕在线观看| 欧美精品一区在线播放| 92看片淫黄大片欧美看国产片| 欧美一区二三区| 欧美亚洲成人网| 日韩在线欧美在线国产在线| 欧美精品videossex性护士| 国产精品网红福利| 日韩av中文在线| 欧美xxxx18国产| 日韩欧美国产成人| 久久91精品国产91久久久| 国产精品久久在线观看| 日本午夜人人精品| 中日韩午夜理伦电影免费| 91性高湖久久久久久久久_久久99| 992tv成人免费影院| 性色av一区二区三区红粉影视| 午夜精品免费视频| 日韩在线高清视频| 亚洲国产精品99久久| 日韩中文字幕免费| 日韩欧美综合在线视频| 美女少妇精品视频| 欧美日韩亚洲高清| 日韩在线视频观看正片免费网站| 国产精品一二区| 国产精品三级在线| 久久久久五月天| 韩国19禁主播vip福利视频| 国产精品嫩草影院久久久| 91精品在线影院| 精品亚洲一区二区三区| 精品视频在线导航| 国产成人极品视频| 亚洲欧美激情视频| 亚洲人成网站免费播放| 精品久久久久久中文字幕一区奶水| 日韩一区二区三区xxxx| 777国产偷窥盗摄精品视频| 久久久久国色av免费观看性色| 国产91久久婷婷一区二区| 精品亚洲国产成av人片传媒| 久久人人爽人人爽人人片av高清| 欧美国产精品人人做人人爱| 欧美激情小视频| 国产精品久久在线观看| 成人av.网址在线网站| 欧美日韩免费区域视频在线观看| 国产91精品高潮白浆喷水| 亚洲乱码国产乱码精品精| 综合久久五月天| 亚洲欧洲在线播放| 欧美日韩在线影院| 97视频在线观看免费高清完整版在线观看| 日韩在线观看网址| 日韩av网站在线| 亚洲电影免费观看| 精品综合久久久久久97| 国产美女扒开尿口久久久| 亚洲影院高清在线| 国产女人精品视频| 亚洲欧美日韩中文视频| 欧美理论电影在线观看| 国产91精品在线播放| 夜夜嗨av一区二区三区免费区| 精品少妇v888av| 中文字幕久久久av一区| 亚洲精品一区二区网址| 久久全球大尺度高清视频| 一区二区欧美在线| 97超碰国产精品女人人人爽| 九九精品视频在线观看| 日韩国产高清视频在线| 欧美洲成人男女午夜视频| 亚洲毛片一区二区| 欧美日韩中文字幕日韩欧美| 久久香蕉国产线看观看av| 57pao精品| 日本精品性网站在线观看| 精品国产一区二区三区在线观看| 欧美野外wwwxxx| 久久久91精品| 色综合天天狠天天透天天伊人| 秋霞av国产精品一区| 国产成人福利网站| 精品久久久久久中文字幕一区奶水| 91成人在线视频| 91中文在线视频| 国产精品美女久久久久久免费| 国产精品99久久久久久www| 欧美日韩一区二区在线| 韩日欧美一区二区| 亚洲国产私拍精品国模在线观看| 亚洲国产精品热久久| 欧美成人网在线| 日韩在线观看高清| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产综合在线看| 欧美国产精品va在线观看| 欧美国产视频一区二区|