如何抓到以下的程式的最大陣列的起始值 |
尚未結案
|
Selena
一般會員 發表:16 回覆:28 積分:8 註冊:2002-11-06 發送簡訊給我 |
如何抓到以下的程式的最大陣列的起始值,它是一個可以算出在一個陣列中,那一段的和為最大的演算法,可是我抓不到正確的起始值,因為陣列中包含了正負值.
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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
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
------
︿︿ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |