ローテーション処理は[左回り]、[右回り]があります
この辺り(左/右回りの見解は教材で違う可能性があります)
ここで定義します。
左回り... 各要素のデータを左にずらす。左端のデータは右端へ
右回り... 各要素のデータを右にずらす。右端のデータは左端へ
その他条件として配列は1オリジンとする
この設問は左回りローテーションです
以下の処理解説で理解出来ますか?
★2始まりのパターンなので、T(i) → T(i-1) で正しい
左回りローテーションは
・最初に左端のデータを待避し(即ち、T(1))、
・T(i) ← T(i+1) ... iは1始まり、(N-1)まで、1ずつ増加
・最後に待避したデータをT(N)に格納
※T(i-1) ← T(i) ... iは2始まり、Nまで、1ずつ増加
右回りローテーションは
・最初に右端のデータを待避し(即ち、T(N))、
・T(i) ← T(i-1) ... iはN始まり、2まで、1ずつ減少
・最後に待避したデータをT(1)に格納
※T(i+1) ← T(i) ... iは(N-1)始まり、1まで、1ずつ減少
★
添字をこの進行方向に進めないと、データの上書きが発生し、
即ち、データの上書とはデータの欠損を意味します。
━