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

首頁 > 學院 > 開發設計 > 正文

.net字符串數組查找方式效率比較

2019-11-14 16:09:04
字體:
來源:轉載
供稿:網友

下面是代碼:

 static void Main(string[] args)        {            string[] arr = new string[] { "AAA", "BBBB", "CCCC", "DDDD", "EEEEEE", "ffffff", "ggggggg", "hhhhhh", "iii", "", "jjj", "kkk" };            string findStr = "kkk";            for (int i = 0; i < arr.Length; i++)            {                if (object.ReferenceEquals(findStr, arr[i]))                    Console.Write(" true1 ");            }            Console.WriteLine();            Console.Write("input string kkk :");            string inputStr = Console.ReadLine();            if (CompareStringInArrar( inputStr, arr))            {                Console.WriteLine(" true2 ");            }            ///////////////////////            Console.WriteLine("一千萬次字符串數組元素查找:");            System.Threading.Thread.Sleep(3000);            long ticks = DateTime.Now.Ticks;            for (int i = 0; i < 10000000; i++)            {                CompareStringInArrar(inputStr, arr);            }            Console.WriteLine("自定義數組查找(Ticks):              {0}", DateTime.Now.Ticks - ticks);            ////////////////////////////////////////            System.Threading.Thread.Sleep(3000);            ticks = DateTime.Now.Ticks;            for (int i = 0; i < 10000000; i++)            {                FindStringInArrar0(ref findStr, arr);            }            Console.WriteLine("直接對象地址相等進行數組查找(Ticks):{0}", DateTime.Now.Ticks - ticks);            ///////////////////////////////////            System.Threading.Thread.Sleep(3000);            ticks = DateTime.Now.Ticks;            for (int i = 0; i < 10000000; i++)            {                FindStringInArrar(ref inputStr, arr);            }            Console.WriteLine("直接遍歷進行數組查找(Ticks):        {0}", DateTime.Now.Ticks - ticks);            ///////////////////////////////////            System.Threading.Thread.Sleep(3000);            ticks = DateTime.Now.Ticks;            for (int i = 0; i < 10000000; i++)            {                CompareStringInArrar2( inputStr, arr);            }            Console.WriteLine("混合數組查找(Ticks):                {0}", DateTime.Now.Ticks - ticks);                      Console.Read();            //DBMethod();        }        PRivate static bool FindStringInArrar0(ref string inputStr, string[] arr)        {            for (int j = 0; j < arr.Length; j++)            {                if (object.ReferenceEquals(inputStr, arr[j]))                    return true;            }            return false;        }        private static bool FindStringInArrar(ref string inputStr, string[] arr)        {            for (int j = 0; j < arr.Length; j++)            {                if (inputStr == arr[j])                    return true;            }            return false;        }        private static bool CompareStringInArrar( string inputStr, string[] arr)        {            //char[] inputCharArr = inputStr.ToCharArray();            int length = inputStr.Length;            bool flag = true;            //string strTemp = null;            for (int i = 0; i < arr.Length; i++)            {                //strTemp = arr[i];                if (length == arr[i].Length)                {                    flag = true;                    for (int j = 0; j < length; j++)                    {                        if (inputStr[j] != arr[i][j])                        {                            flag = false;                            break;                        }                    }                    if (flag)                        return true;                }            }            return false;        }        /// <summary>        /// 混合查找        /// </summary>        /// <param name="inputStr"></param>        /// <param name="arr"></param>        /// <returns></returns>        private static bool CompareStringInArrar2(string inputStr, string[] arr)        {            //char[] inputCharArr = inputStr.ToCharArray();            int length = inputStr.Length;            bool flag = true;            //string strTemp = null;            for (int i = 0; i < arr.Length; i++)            {                if (object.ReferenceEquals(inputStr, arr[i]))                    return true;                //strTemp = arr[i];                if (length == arr[i].Length)                {                    flag = true;                    for (int j = 0; j < length; j++)                    {                        if (inputStr[j] != arr[i][j])                        {                            flag = false;                            break;                        }                    }                    if (flag)                        return true;                }            }            return false;        }

 

但是通常比較都需要忽略大小寫比較,所以不能單純使用這種方式比較,用下面的測試代碼:

class Program    {        static void Main(string[] args)        {            string A = "124Abc";            string B = "2345b";            string C = "124abce";            Console.WriteLine("input string(123Abc):");            string D = Console.ReadLine();            string E = "124Abc";            long ticks = 0;            long ticks2 = 0;            long ticks3 = 0;            long ticks4 = 0;            long ticks5 = 0;                        Stopwatch sw = Stopwatch.StartNew();            //預熱            for (int i = 0; i < 1000000; i++)            {                bool b1 = string.Compare(A, B, StringComparison.OrdinalIgnoreCase) == 0;            }            //開始            sw.Reset();            sw.Start();            for (int i = 0; i < 1000000; i++)            {                bool b1 = string.Compare(A, D, StringComparison.OrdinalIgnoreCase) == 0;            }            ticks = sw.ElapsedTicks;            sw.Reset();            sw.Start();            for (int i = 0; i < 1000000; i++)            {                bool b2 = string.Equals(A, C, StringComparison.OrdinalIgnoreCase);            }            ticks2 = sw.ElapsedTicks;            sw.Reset();            sw.Start();            for (int i = 0; i < 1000000; i++)            {                bool b2 = string.Equals(A, D, StringComparison.OrdinalIgnoreCase);            }            ticks3 = sw.ElapsedTicks;            sw.Reset();            sw.Start();            for (int i = 0; i < 1000000; i++)            {                bool b2 = string.Equals(A, E, StringComparison.OrdinalIgnoreCase);            }            ticks4 = sw.ElapsedTicks;            sw.Reset();            sw.Start();            for (int i = 0; i < 1000000; i++)            {                bool b2 = A.Length== C.Length && string.Equals(A, C, StringComparison.OrdinalIgnoreCase);            }            ticks5 = sw.ElapsedTicks;            Console.WriteLine("{0},/r/n{1},/r/n{2},/r/n{3},/r/n{4}/r/n", ticks, ticks2, ticks3, ticks4, ticks5);            Console.Read();        }    }

最后得出結論,最后一種方式最快,原因在于首先判斷了長度,如果不是一樣的長度直接跳過比較,下面是測試數據:

input string(123Abc):123Abc87806,15255,58227,7569,1939

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久伊人精品一区二区三区| 亚洲成年人在线播放| 国产精品电影观看| 日韩中文字幕网站| 国产成人精品免高潮在线观看| 亚洲a在线观看| 国产精品白丝jk喷水视频一区| 亚洲美女视频网站| 久久久久久久一区二区三区| 欧美国产日韩一区二区在线观看| 国产精品久久精品| 最新国产成人av网站网址麻豆| 国产999在线观看| 久久天天躁夜夜躁狠狠躁2022| 国产精品激情av在线播放| 欧美猛少妇色xxxxx| 亚洲综合在线做性| 欧美成人sm免费视频| 亚洲国产精品系列| 国产精品久久久久久久久免费| 欧美大片大片在线播放| 亚洲大胆人体av| 亚洲国产小视频| 精品国产乱码久久久久久婷婷| 国产精品香蕉av| 欧美午夜女人视频在线| 亚洲成色www8888| 欧美高清视频在线观看| 欧美精品一本久久男人的天堂| 国产精自产拍久久久久久| 国产精品国产亚洲伊人久久| 最新国产成人av网站网址麻豆| 亚洲aⅴ男人的天堂在线观看| 欧美视频免费在线观看| 国产日韩精品视频| 欧美裸体男粗大视频在线观看| 午夜精品三级视频福利| 亚洲风情亚aⅴ在线发布| 97香蕉超级碰碰久久免费的优势| 91九色综合久久| 欧美精品一区在线播放| 精品欧美国产一区二区三区| 亚洲毛片一区二区| 亚洲欧美日韩精品久久| 日韩亚洲一区二区| 亚洲成人黄色在线| 国自产精品手机在线观看视频| 国产91ⅴ在线精品免费观看| 成人网页在线免费观看| 亚洲人午夜精品免费| 日韩中文字幕免费| 亚洲激情视频网站| 欧美激情国产日韩精品一区18| 日韩免费观看av| 欧美精品日韩三级| 亚洲片国产一区一级在线观看| 亚洲第一区在线| 久久亚洲春色中文字幕| 国产丝袜一区二区三区| 欧美大码xxxx| 日韩精品视频免费在线观看| 性日韩欧美在线视频| 在线播放国产一区中文字幕剧情欧美| 永久555www成人免费| 日韩av黄色在线观看| 成人情趣片在线观看免费| 成人免费午夜电影| 欧日韩在线观看| 夜夜嗨av一区二区三区免费区| 精品欧美aⅴ在线网站| 久久久久久久一区二区三区| 久久精品亚洲精品| 中文字幕久精品免费视频| 亚洲男人天堂视频| 日韩av电影手机在线观看| 亚洲第一区中文99精品| 日韩电影大全免费观看2023年上| 国内精品久久久久久影视8| 亚洲精品www久久久| 国产精品自产拍在线观看| 色综合视频一区中文字幕| 国产精品xxx视频| 日韩一区二区av| 亚洲91av视频| 亚洲国产精品国自产拍av秋霞| 精品国产一区二区三区久久狼黑人| 日韩成人av在线播放| 亚洲www在线观看| 亚洲人成五月天| 亚洲jizzjizz日本少妇| www.日韩免费| 欧美野外猛男的大粗鳮| 日韩欧美中文字幕在线播放| 日韩经典第一页| 97不卡在线视频| 日韩一区在线视频| 在线视频欧美日韩精品| 国产精品热视频| 日韩欧亚中文在线| 2020久久国产精品| 成人午夜激情免费视频| 色妞在线综合亚洲欧美| 国产一区二区丝袜| 国产欧美中文字幕| 国产精品丝袜一区二区三区| 亚洲第一视频网| 亚洲人成亚洲人成在线观看| 欧美性开放视频| 欧美激情在线观看| 欧美一级在线播放| 国产精品国产亚洲伊人久久| 国产精品免费久久久| 欧美视频第一页| 国产精品一二三在线| 亚洲精品一区二区三区不| 777精品视频| 亚洲无av在线中文字幕| 国产精品综合不卡av| 国产在线一区二区三区| 国产精品免费视频xxxx| 91久久久久久久久| 亚洲国产精品免费| 日韩在线激情视频| 久久精品电影网| 欧美性猛交xxxx免费看漫画| 精品高清一区二区三区| 亚洲成人久久久久| 91精品啪在线观看麻豆免费| 国产成人精品电影久久久| 国产精品第二页| 午夜精品久久久久久久99热浪潮| 最近2019好看的中文字幕免费| www.亚洲免费视频| 亚洲女人被黑人巨大进入al| 福利一区福利二区微拍刺激| 日韩电影免费观看中文字幕| 91精品国产高清自在线看超| 色偷偷91综合久久噜噜| 91亚洲永久免费精品| 91久久国产精品91久久性色| 亚洲性生活视频| 久久6免费高清热精品| 在线精品视频视频中文字幕| 成人免费观看49www在线观看| 亚洲免费影视第一页| www.日本久久久久com.| 国产午夜精品全部视频在线播放| 国产在线视频一区| 国产在线98福利播放视频| 97精品视频在线观看| 精品国产91乱高清在线观看| 亚洲天堂网站在线观看视频| 久久亚洲精品视频| 久久久成人av| 亚洲高清免费观看高清完整版| 91精品国产高清自在线| 国产精品伦子伦免费视频| 亚洲自拍偷拍色图| 欧美日韩国产色| 日本精品视频在线播放| 77777亚洲午夜久久多人| 国产精品久久久亚洲| 91po在线观看91精品国产性色| 久久精品99久久香蕉国产色戒|