今天看到《代码大全》上有一句话,不太理解:
"任何懂java的人都知道,从0开始循环至num-1要比从1开始到num效率要高得多"?
"任何懂java的人都知道,从0开始循环至num-1要比从1开始到num效率要高得多"?
解决方案 »
- 反射清除所有事件问题.button可以EventClick找到,NumericUpDown的事件找不到.
- C#线程操作的一个问题
- 在使用.Net Remoting方式的中间层的方法里返回自定义对象报错
- 在datagrid中如何实现字段比值
- 关于DrawString的问题
- 文件下载,求帮忙!!!!
- C# winfrom 快捷键问题
- C中的 char* 在C#中用什么来替代,不要说用 char* 指针
- ::::::::::C# 好站点收集::::::::: 最好是带论坛的。
- TreeView控件的这段例题代码,为什么不能显示班级信息?
- JS执行函数问题
- Winform DataGridView点击事件问题
但是,一维零基数组比一维非零基数组循环的效率要高,这点是肯定的
闲来测试一下,都是测试数组长度为1个亿的长度,为了消除执行顺序对时间的影响,分两段程序,每段都可以拷贝直接运行。 机器配置:win7 professional Dual-Core CPU E5800 @3.20Ghz 3.20Ghz 内存2G第一段:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;namespace AbstractFactory
{
class Client
{
/// <summary>
/// 主方法
/// </summary>
public static void Main()
{
int[] arr = new int[100000000];
//无聊的整型变量
int tmp; //从1开始
Console.WriteLine("开始时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
for (int i = 1; i < 100000000; i++)
{
tmp = arr[i];
}
Console.WriteLine("结束时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
// Console.ReadLine(); //从0开始
Console.WriteLine("开始时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
for (int i = 0; i < 100000000; i++)
{
tmp = arr[i];
}
Console.WriteLine("结束时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
Console.ReadLine();
}
}
}测试结果:
开始时间:8秒777毫秒
结束时间:9秒209毫秒
开始时间:9秒209毫秒
结束时间:9秒537毫秒可以看出 第一个循环432毫秒(从1开始) ,第二个循环328毫秒(从0开始)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;namespace AbstractFactory
{
class Client
{
/// <summary>
/// 主方法
/// </summary>
public static void Main()
{
int[] arr = new int[100000000];
//无聊的整型变量
int tmp; //从0开始
Console.WriteLine("开始时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
for (int i = 0; i < 100000000; i++)
{
tmp = arr[i];
}
Console.WriteLine("结束时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
//Console.ReadLine(); //从1开始
Console.WriteLine("开始时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
for (int i = 1; i < 100000000; i++)
{
tmp = arr[i];
}
Console.WriteLine("结束时间:" + DateTime.Now.Second + "秒" + DateTime.Now.Millisecond + "毫秒");
Console.ReadLine();
}
}
}测试结果:
开始时间:42秒41毫秒
结束时间:42秒464毫秒
开始时间:42秒464毫秒
结束时间:42秒788毫秒可以看出 第一个循环423毫秒(从0开始) ,第二个循环324毫秒(从1开始)