编程中注意事项
2015-08-09 15:14
417 查看
1、循环模块注意顺序
2、检查变量在那些地方进行了赋值,是否需要修改的值因为if语句没有执行而未赋值
3、数字运算时越界问题
4、递归调用一定要有终止条件,且能够有限次终止。对于采用分治思想的递归调用,随着递归的进行,数据规模要能够不断减小
在QuickSort中,
之前,否则递归将无法终止
5 函数返回值,在写函数定义的时候,写下了int,double或是其他返回类型,在函数结束的时候一定要记着返回
6 考虑每一步的先决条件
do { nextVer = path[nextVer]; pathStack.push(nextVer); }while(nextVer != source);
2、检查变量在那些地方进行了赋值,是否需要修改的值因为if语句没有执行而未赋值
if( dis[vertexNum] > tmpDis) { dis[vertexNum] = tmpDis; path[vertexNum] = midVertexNum; }
3、数字运算时越界问题
INT_MAX + 3 < 0
4、递归调用一定要有终止条件,且能够有限次终止。对于采用分治思想的递归调用,随着递归的进行,数据规模要能够不断减小
在QuickSort中,
if( low < high )必须在递归函数的第一行,而不能放在
QuickSort(data, seq, low_org, low-1); QuickSort(data, seq, low+1, high_org);
之前,否则递归将无法终止
5 函数返回值,在写函数定义的时候,写下了int,double或是其他返回类型,在函数结束的时候一定要记着返回
double optimalBST2(int low, int high) { if( low - high == 1 ) return q[high]; else { double minMal = MaxVal; double temp = 0; for(int k = low; k <= high; k++) { double prob = 0; for( int index = low; index <= high; index++ ) prob = prob + p[index] + q[index]; prob = prob + q[low-1]; temp = optimalBST2(low,k-1) + optimalBST2(k+1,high) + p[k] + prob; if( temp < minMal ) { minMal = temp; root[low][high] = k; } } return temp; } }
6 考虑每一步的先决条件
int temp1 = optimalPackage( weight+1, price+1, NUM-1, MAXWEIGHT ,choice+1); int temp2 = 0; if( MAXWEIGHT-weight[0] >= 0 ) temp2 = optimalPackage( weight+1, price+1, NUM-1, MAXWEIGHT-weight[0] ,choice+1) + price[0];
相关文章推荐
- CasperJS 实现百度登录
- ASP.NET MVC5(3)数据从控制器传递给视图
- Python-Selenium2做Web自动化测试(6)-解决使用Webdrive打开Firefox不含有插件的问题
- 《Java从入门到精通》第十三章学习笔记
- Lua 语言输出Table详细信息的实现
- 多线程编程 实战篇 (二)
- SSM框架——使用MyBatis Generator自动创建代码
- python中json模块的使用
- 计蒜客 - 挑战难题39 - 斐波那契数列 - Python之路
- Java提高篇(三四)-----fail-fast机制
- 超过lua上帝的语言
- 国内大型的内部 C# 编程规范
- python中的类编程
- java中clone源码解析
- Java记录 -4- 运算符 Operator
- python中的break|continue|pass|return
- C编程的指针涛 ---第十笔记
- ASP.NET MVC5(2)视图
- C++引用详解
- 贪心算法之Packets