码迷,mamicode.com
首页 > 其他好文 > 详细

一个Demo让你意识到数据结构的重要性

时间:2017-01-20 00:17:27      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:for   strong   dmi   console   数据结构   重要   style   com   ict   

1.首先我们做一个简单的测试,创建一个十万次的for循环,循环过程中判断当前i值是否在list集合中,如果不在,就将其加入到集合中去。通过结果我们可以看到一个如此简单的逻辑耗时竟然高达95634毫秒,将近100秒的时间。

            Stopwatch sw = new Stopwatch();
            sw.Start();
            List<string> list = new List<string>();
            for (int i = 0; i < 100000; i++)
            {
                if (!list.Contains(i.ToString()))
                {
                    list.Add(i.ToString());
                }
            }
            Console.WriteLine(sw.ElapsedMilliseconds);
            Console.ReadKey();

技术分享

2.我们将List集合改为HashSet,将循环次数修改为循环一百万次,发现结果不过是1195毫秒,性能得到了显著地提升。

           Stopwatch sw = new Stopwatch();
            sw.Start();
            HashSet<string> hashSet = new HashSet<string>();
            for (int i = 0; i < 1000000; i++)
            {
                if (!hashSet.Contains(i.ToString()))//如果当前i值不在hashSet集合中
                {
                    hashSet.Add(i.ToString());//将当前i值添加到该集合中去
                }
            }
            Console.WriteLine(sw.ElapsedMilliseconds);
            Console.ReadKey();

技术分享

3.我们将List集合改为Dictionary<string,string>,将循环次数修改为循环一百万次,发现结果不过是1753毫秒,性能同样得到了显著地提升。

            Stopwatch sw = new Stopwatch();
            sw.Start();
            Dictionary<string,string> dic =new  Dictionary<string, string>();
            for (int i = 0; i < 1000000; i++)
            {
                if (!dic.ContainsKey(i.ToString()))//如果当前i值不在字典中
                {
                    dic.Add(i.ToString(),i.ToString());//将当前i值添加到该字典中去
                }
            }
            Console.WriteLine(sw.ElapsedMilliseconds);
            Console.ReadKey();

技术分享

4.睡觉。未完待续。。。。。

一个Demo让你意识到数据结构的重要性

标签:for   strong   dmi   console   数据结构   重要   style   com   ict   

原文地址:http://www.cnblogs.com/cnki/p/6309012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!