一.线性结构插入元素
- //如果把后移数组元素的循环
- for ( j = PtrL->Last; j >= i-1; j– )
- PtrL->Data[j+1]=PtrL->Data[j];
- //改为
- for ( j = i-1; j <= PtrL->Last; j++ )
- PtrL->Data[j+1]=PtrL->Data[j];
因为每一次替换都是把当前这个值赋给下一个,如果按照第二个算法,分量Data[i-1]到Data[Ptrl->Last+1]都是同一个值,即移之前Data[i-1]的值
二.计算一个数列的最大子列
如果以个子列是负数,那么它就毫无益处,因为任何东西加上它都会变得更加小,而不是变大。
- #include<cstdio>
- int main( )
- { int ThisSum=0, MaxSum = 0;
- int A[]={100000,-1,100000,-5,100,100,100,100,100},N=9;
- int i, j, k;
- for( i = 0; i < N; i++ ) {
- ThisSum += A[i];
- if( ThisSum > MaxSum )
- MaxSum = ThisSum;
- else if( ThisSum < 0 )
- ThisSum = 0;
- }
- printf(“MaxSum = %d”,MaxSum);
- getchar();getchar();
- return 0;
- }