Ookay、
1 for p := 1 to ⌊k/2⌋
つまり、アレイの半分まで移動します。
2 t := ap
3 ap := ak−p+1
4 ak−p+1 := t
このパターンは、「一時的なスワップ」として認識できますt
。そして、何が交換されますか?
さて、ap
そしてak-p+1
、1つp
は配列の開始から-番目の要素であり、もう1つp
は終了から-番目の要素です。
したがって、要約すると:
n
最初のn
-thを、配列の半分までの最後の-番目の配列値と交換します。そしてその後?配列が逆になります。
擬似コード形式は本当に奇妙に見え、そして最も重要なことに、あいまいに見えることに注意してください。
またはとak-p+1
同等a[k-p+1]
ですか?そうでない場合は、他のものをどのように表現しましたか。a[k]-p+1
a[k-p]+1
したがって、最初に、このコードをPythonのような実際のソースに変換します。これははるかに読みやすいものです。
編集します。
I)さて、あなたが投稿したように、配列の範囲はからa1
ですak
。
a
II)2つの変数(およびb
)の値を交換する方法を考えてください。
1 temp := a
2 a := b
3 b := temp
もちろん、2行目で上書きa
したため、古い値を一時的に保存する必要がありました。これはです。b
a
temp