您的位置:首页 > 编程语言

编程中注意事项

2015-08-09 15:14 417 查看
1、循环模块注意顺序

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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: