使用锯齿数组提高效率
2009-06-12 00:42
141 查看
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!陈希章原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/06/23/1228269.html原文标题:使用锯齿数组提高效率 原文发表:2008/6/23 8:16:00 |
所谓锯齿数组,是一种特殊的数组,即我们常说的数组的数组。
我们所使用的范例是把一年的数据用随机数填充起来
如果用多维数组的话,因为预先定义好了维的长度,所以事实上在里面是有空的单元的。例如第二个维是31,但是有的月份可能没有31号这一天。
锯齿数组,在数组里面放的还是数组,这样每个数组的长度是可以精确控制的
经验证明:锯齿数组不仅在某些时候节省空间,而且可以比较显著地提高性能。
static void Main(string[] args)
{
int[,] multi = new int[12, 31];
Random rnd = new Random();
int[][] jagged = new int[12][];
for (int i = 0; i < 12; i++)
{
for (int m = 0; m < DateTime.DaysInMonth(DateTime.Now.Year, i + 1) - 1; m++)
{
multi[i, m] = rnd.Next(100);
}
}
Console.WriteLine("开始计算多维数组于:"+DateTime.Now.ToLongTimeString());
int sum = 0;
for (int k = 0; k < 65536; k++)
{
for (int i = 0; i < 12; i++)
{
for (int m = 0; m < DateTime.DaysInMonth(DateTime.Now.Year, i + 1) - 1; m++)
{
sum += multi[i, m];
}
}
}
Console.WriteLine("结束计算多维数组于:"+DateTime.Now.ToLongTimeString()+"/n");
for (int i = 0; i < 12; i++)
{
int days = DateTime.DaysInMonth(DateTime.Now.Year, i + 1);
jagged[i] = new int[days];
for (int m = 0; m < days - 1; m++)
{
jagged[i][m] = rnd.Next(100);
}
}
sum = 0;
Console.WriteLine("开始计算锯齿数组于:"+DateTime.Now.ToLongTimeString());
for (int k = 0; k < 65536; k++)
{
for (int i = 0; i < 12; i++)
{
int days = DateTime.DaysInMonth(DateTime.Now.Year, i + 1);
for (int m = 0; m < days - 1; m++)
{
sum += jagged[i][m];
}
}
}
Console.WriteLine("结束计算锯齿数组于:"+DateTime.Now.ToLongTimeString());
Console.Read();
}
结果如下,高下立判啊
作者:陈希章 出处:http://blog.csdn.net/chen_xizhang 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
相关文章推荐
- 使用锯齿数组提高效率
- 使用锯齿数组提高效率
- java 代码优化 优化内存使用 防止内存泄露 优化代码规范 提高效率
- 使用Fiddler提高前端工作效率 (实例篇)
- 第十六周实验--任务3--做一个词汇量近8000 个的电子词典--使用二分查找法提高效率
- 提高书写效率--editplus使用经验总结
- Win10将屏幕四等分使用分屏功能会提高工作效率
- 【转载】使用Fiddler提高前端工作效率 (实例篇)
- LLdb篇2教你使用faceBook的chisel来提高调试效率
- 提高你开发效率的十五个Visual Studio 2010使用技巧
- Windows小技巧 -- Win+R提高Windows使用效率
- 总结经常使用可以提高工作效率的工具集
- 提高你开发效率的十五个 Visual Studio 使用技巧
- java多线程(七)提高锁的效率——使用读写锁
- 提高你开发效率的十五个Visual Studio 2010使用技巧
- 在 WordPress 中加载 JavaScript 最好使用 wp_enqueue_script() 函数以减少问题提高效率
- 使用supervisor提高nodejs调试效率
- 使用const引用传递来提高效率
- php根据二分查找法从普通csv文件中获取ip的地理位置(效率比使用mysql提高近800倍)
- protocol类似@class方式使用, 能提高效率, 但是有警告.