A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fcyan86 中级黑马   /  2013-5-30 18:03  /  2604 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 fcyan86 于 2013-5-30 21:01 编辑
  1. int[]numbers=new int[10];
  2.             Random rdm=new Random();
  3.             for (int i = 0; i < numbers.Length; i++)
  4.             {
  5.                 numbers[i] = rdm.Next(100);
  6.                 Console.Write(numbers[i]+"\t");
  7.             }
  8.             Console.WriteLine();
  9.             //使用linq查出最大值
  10.             int maxValue1 = numbers.Max(p => p);
  11.             //循环找出最大值
  12.             int maxValue2 = numbers[0];
  13.             foreach (int number in numbers)
  14.             {
  15.                 if (number > maxValue2)
  16.                     maxValue2 = number;
  17.             }
复制代码
在这段代码中,找出最大值那个快一些,还有for与foreach那个快些,用什么方法可以精确的比较出两都的效率

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
上代码
  1. //测试代码运行的时间
  2.             Stopwatch sw = new Stopwatch();
  3.             int[]numbers=new int[10];
  4.             Random rdm=new Random();
  5.             for (int i = 0; i < numbers.Length; i++)
  6.             {
  7.                 numbers[i] = rdm.Next(100);
  8.                 Console.Write(numbers[i]+"\t");
  9.             }
  10.             Console.WriteLine();

  11.              sw.Start();
  12.             //使用linq查出最大值
  13.             int maxValue1 = numbers.Max(p => p);
  14.              sw.Stop();
  15.             Console.WriteLine(sw.Elapsed);

  16. sw.Start();
  17.             //循环找出最大值
  18.             int maxValue2 = numbers[0];
  19.             foreach (int number in numbers)
  20.             {
  21.                 if (number > maxValue2)
  22.                     maxValue2 = number;
  23.             }
  24. sw.Stop();
  25.             Console.WriteLine(sw.Elapsed);
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
本帖最后由 zpzhangwenhan 于 2013-5-30 20:19 编辑

上代码
用这个类,可以运算代码的执行时间
Stopwatch sw = new Stopwatch();
  1.            //测试代码运行的时间
  2.             Stopwatch sw = new Stopwatch();
  3.             int[]numbers=new int[10];
  4.             Random rdm=new Random();
  5.             for (int i = 0; i < numbers.Length; i++)
  6.             {
  7.                 numbers[i] = rdm.Next(100);
  8.                 Console.Write(numbers[i]+"\t");
  9.             }
  10.             Console.WriteLine();

  11.              sw.Start();
  12.             //使用linq查出最大值
  13.             int maxValue1 = numbers.Max(p => p);
  14.              sw.Stop();
  15.             Console.WriteLine(sw.Elapsed);

  16.              sw.Start();
  17.             //循环找出最大值
  18.             int maxValue2 = numbers[0];
  19.             foreach (int number in numbers)
  20.             {
  21.                 if (number > maxValue2)
  22.                     maxValue2 = number;
  23.             }
  24. sw.Stop();
  25.             Console.WriteLine(sw.Elapsed);
复制代码
回复 使用道具 举报
.net的兄弟真给力,答题很详细,佩服, 以后有事情   或者没加分 给我留言或者看我的个性签名
回复 使用道具 举报
回答很给力,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马