質問

画像の説明が入力されています

ハイライトされた部分では、任意のインデックス「P」から始まる配列が「i」から始まり「P-1」で終わる配列よりも大きくなることはありません。

画像の説明が入力されています

彼自身の例(下図の内側ループ)これは明らかに偽である。

アルゴリズム2

i= 0とj= 3を奪う

[0]= -14、A [1]= -4、A [2]= -2、A [3]= -1を求めます。

p= 2の場合、「P」から「j」への部分列合計は、「i」よりも明らかに大きくなり、「P - 1」

weiss氏は、薄い空気からの仮定を引くようです( "jはIs Index iから始まる第1のインデックスが否定的になる最初のインデックスです")上記の中にはそれを意味するかもしれませんでした!確かに、間違いのみが「i」と「j」との間では否定的であるが、これのソースが発生した場合にのみ行われることができるところではない。これはどこから来ていますか?

助けてくれてありがとう!

役に立ちましたか?

解決

あなたは彼がどのアルゴリズムを説明しているかについて混乱していると思います。彼の説明はアルゴリズム2のためのものではなく、アルゴリズム4のために、再導入された虚数インデックスi

このインデックスをこのインデックスで書かせて、それを明確にする:

maxSubSum(array a):
  maxSum = 0, thisSum = 0;
  i = 0;
  for j going from 0 to length(a)-1:
    thisSum += a[j];
    if thisSum > maxSum:
      maxSum = thisSum;
    else if thisSum < 0:
      i = j+1;
      thisSum = 0;
   return maxSum;
.

このアルゴリズムでは、ThisSum <0、次にjが実際に「Index iから始まるサブシーケンスを否定的にする」の「最初のインデックス」であることがわかり、残りの請求は次のとおりです。特にこのアルゴリズムで行われない例では、このアルゴリズムでは発生できません(その場合はi=0j=3はありません)。

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top