首页 > 代码库 > 一个Demo让你意识到数据结构的重要性
一个Demo让你意识到数据结构的重要性
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让你意识到数据结构的重要性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。