全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1596
推到 Plurk!
推到 Facebook!

如何抓到以下的程式的最大陣列的起始值

尚未結案
Selena
一般會員


發表:16
回覆:28
積分:8
註冊:2002-11-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-15 10:15:33 IP:211.74.xxx.xxx 未訂閱
如何抓到以下的程式的最大陣列的起始值,它是一個可以算出在一個陣列中,那一段的和為最大的演算法,可是我抓不到正確的起始值,因為陣列中包含了正負值. int MaxSubsequenceSum( const int A[ ], int N ) { int ThisSum, MaxSum, j; /* 1*/ ThisSum = MaxSum = 0; /* 2*/ for( j = 0; j < N; j ) { /* 3*/ ThisSum = A[ j ]; /* 4*/ if( ThisSum > MaxSum ) /* 5*/ MaxSum = ThisSum; /* 6*/ else if( ThisSum < 0 ) /* 7*/ ThisSum = 0; } /* 8*/ return MaxSum; } /* END */ 月光小築~月牙兒
------
月光小築~月牙兒
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-16 11:51:50 IP:61.218.xxx.xxx 未訂閱
 
int MaxSubsequenceSum( const int A[ ], int N )
{
int ThisSum, MaxSum, j;
int k;
int b[][3];     b[0][0]=0; b[0][1]=0; b[0][2]=0;     k=0;
 ThisSum=0; MaxSum=0;
 for( j = 0; j < N; j   )
 {
 ThisSum  = A[ j ];      if( ThisSum > MaxSum )
   {
      MaxSum = ThisSum;
      b[k][1]=j; 
      b[K][2]=MaxSum;
   }
  else 
  {
   k  ;
   b[k][0]=j 1; 
   b[k][1]=j 1; 
   b[K][2]=0;
   ThisSum = 0;
   MaxSum=0;
  }
 }     int index=0;
 for( j = 0; j < k; j   )
 {
  if (b[j 1][2] > b[j][2] )
  {
   index=j 1;
  }
 }      printf('max: %d-%d',b[index][0],b[index][1]);
 return MaxSum;
}        
發表人 - cmf 於 2003/10/16 11:53:13
------
︿︿
Selena
一般會員


發表:16
回覆:28
積分:8
註冊:2002-11-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-16 12:06:31 IP:211.74.xxx.xxx 未訂閱
int MaxSubsequenceSum( const int A[ ], int N ) { int ThisSum, MaxSum, j; int k; int b[][3]; b[0][0]=0; b[0][1]=0; b[0][2]=0; k=0; ThisSum=0; MaxSum=0; for( j = 0; j < N; j ) { ThisSum = A[ j ]; if( ThisSum > MaxSum ) { MaxSum = ThisSum; b[k][1]=j; b[K][2]=MaxSum; } else { k ; b[k][0]=j 1; b[k][1]=j 1; b[K][2]=0; ThisSum = 0; MaxSum=0;===>這行一定要嗎?如果加了這行結果可能就會被改了耶~~這樣和就會不正確了說 } } int index=0; for( j = 0; j < k; j ) { if (b[j 1][2] > b[j][2] ) { index=j 1; } } printf('max: %d-%d',b[index][0],b[index][1]); return MaxSum; } 月光小築~月牙兒
------
月光小築~月牙兒
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-16 14:42:32 IP:61.218.xxx.xxx 未訂閱
    int MaxSubsequenceSum( const int A[ ], int N )
{
int ThisSum, MaxSum, j;
int k;
int b[][3];     b[0][0]=0; b[0][1]=0; b[0][2]=0;     k=0;
 ThisSum=0; MaxSum=0;
 for( j = 0; j < N; j   )
 {
 ThisSum  = A[ j ];      if( ThisSum > MaxSum )
   {
      MaxSum = ThisSum;
      b[k][1]=j; 
      b[K][2]=MaxSum;
   }
  else 
  {
   k  ;
   b[k][0]=j 1; 
   b[k][1]=j 1; 
   b[K][2]=0;
   ThisSum = 0;
   MaxSum=0;
  }
 }     int index=0;
 for( j = 0; j < k; j   )
 {
  if (b[j 1][2] > b[j][2] )
  {
   index=j 1;
  }
 } 
 
 MaxSum=b[index][2]; 
 printf('max: %d-%d; MAXSUM=%d ',b[index][0],b[index][1],b[index][2]);
 return MaxSum;
}        月光小築~月牙兒
 
發表人 - cmf 於 2003/10/16 14:43:28
------
︿︿
系統時間:2024-05-05 10:16:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!