让程序的运行速度提高100倍
来源:互联网 发布:手机 大数据 编辑:程序博客网 时间:2024/05/02 02:28
最近写了一个宽度优先搜索迷宫的程序。程序中用ArrayList保存已经遍历过的节点,用节点比较判断是否已遍历。用一个测试案例去测试,竟然运行了11000毫秒。代码如下:
ArrayList lstTraveledNode= new ArrayList();
//开始为空。
if (lstTraveledNode.Contains(node) == true)
{
//已遍历过,。。。
}
else
{
//未遍历过,。。。
}
//开始为空。
if (lstTraveledNode.Contains(node) == true)
{
//已遍历过,。。。
}
else
{
//未遍历过,。。。
}
感觉速度太慢了。然后改用布尔类型数组来存储已经遍历过的节点,用坐标从数组中取值比较,判断是否已遍历。仍然用原测试用例测试,运行了120毫秒,结果就出来了。速度提高了将近100倍。代码如下:
bool[,] nodeTraveled = new bool[width, height];
//初始化后,默认为false, 代表没有遍历。
//......
if (nodeTraveled[curX, curY] == true)
{
//遍历过,。。。
}
else
{
//未遍历过,。。。
}
这两段代码的不同之处,在于第二段代码中用布尔类型代替了节点类型,方便了比较,加快了运行速度。相比之下,第一段代码是如实的记录了遍历过的点,但是并没有为这些节点编码。
现实中的事物和处理过程大都可以利用编码的方法在代码中表达。一般的,代码中用的数据类型越简单,运行效率就越高。
- 让程序的运行速度提高100倍
- 提高程序运行速度 让Ext JS华而又实
- 提高程序运行速度 让Ext JS华而又实
- 【转】提高matlab程序的运行速度
- 提高程序运行速度的方法
- C++程序提高运行速度的方法
- 通过非聚集索引让select count(*) from 的查询速度提高几十倍、甚至千倍
- 通过非聚集索引让select count(*) from 的查询速度提高几十倍、甚至千倍
- 通过非聚集索引让select count(*) from 的查询速度提高几十倍、甚至千倍
- 通过非聚集索引让select count(*) from 的查询速度提高几十倍、甚至千倍
- 通过非聚集索引让select count(*) from 的查询速度提高几十倍、甚至千倍
- Android Studio的运行加速和优化,速度最快提高10倍。
- 20分钟让你阅读速度提高3倍
- 新科技可让智能手机充电速度提高一倍
- 20分钟让你阅读速度提高3倍
- 速度Spark为什么能够把云计算大数据的速度提高到100倍以上
- 提高PLC程序运行速度的编程方法
- 提高VS2010的运行速度
- jsp简介
- Tomcat加载顺序
- ExtJS2.0开发与实践笔记[4]——Ext中的动画处理
- AMD比INTEL仁慈多了(就双方的克隆镜像互相安装可识别能力)
- Pku acm 2299 Ultra-QuickSort 排序算法解题报告(四)----归并排序(MegerSort)求逆序数
- 让程序的运行速度提高100倍
- 对话
- 在.net中给Oracle上传文件超过一定大小出错的问题
- AJAX学习------基于DOM的Web应用程序示例
- Pku acm 1007 DNA Sorting 排序算法解题报告(五)----求逆序数 排序
- GLUT教程 (一) 简介
- C#学习
- GLUT教程(二) GLUT初始化
- 如何学好一门语言