一.线性结构插入元素

  1. //如果把后移数组元素的循环
  2.    for ( j = PtrL->Last; j >= i-1; j– )
  3.        PtrL->Data[j+1]=PtrL->Data[j];
  4. //改为
  5.    for ( j = i-1; j <= PtrL->Last; j++ )
  6.        PtrL->Data[j+1]=PtrL->Data[j];

因为每一次替换都是把当前这个值赋给下一个,如果按照第二个算法,分量Data[i-1]到Data[Ptrl->Last+1]都是同一个值,即移之前Data[i-1]的值

二.计算一个数列的最大子列

如果以个子列是负数,那么它就毫无益处,因为任何东西加上它都会变得更加小,而不是变大。

  1. #include<cstdio>
  2. int main(  )
  3. {   int ThisSum=0, MaxSum = 0;
  4.     int A[]={100000,-1,100000,-5,100,100,100,100,100},N=9;
  5.     int i, j, k;
  6.     for( i = 0; i < N; i++ ) {
  7.           ThisSum += A[i];
  8.           if( ThisSum > MaxSum )
  9.                   MaxSum = ThisSum;
  10.           else if( ThisSum < 0 )
  11.                   ThisSum = 0;
  12.     }
  13.      printf(“MaxSum = %d”,MaxSum);
  14.      getchar();getchar();
  15.      return 0;
  16. }