平成22年春期午後問8

あさこさん  
(No.1)
設問2のウの解説で、なぜこの順番で処理がなされるのか理解できません。
④までは分かるのですが、それ以降がいまいち理解できません。
再帰関数の処理の流れについて色々調べ、図で表すなどして考えているのですが、半分ぐらいしか理解できていません。
どなたか解説していただけないでしょうか。
2022.04.23 14:54
chihiroさん 
FE プラチナマイスター
(No.2)
https://www.fe-siken.com/bbs/4136.html
ここでトレース内容について軽く説明してます。
2022.04.23 15:23
あさこさん  
(No.3)
分かりやすい説明、ありがとうございます!

1つ分からないのですが、
「副プログラムMergeの返却値である配列が、配列listの内容」であるのに、なぜ、chihiroさんが書かれた説明の上から4段落目の「⑵の続きから」では、slist2=[8,2]がslist2=[2,8]になるのでしょうか?
どこで、slist2の内容が更新されているのですか?
2022.04.23 16:07
あさこさん  
(No.4)
文字化け部分は、「カッコ2の続きから」です。
2022.04.23 16:08
chihiroさん 
FE プラチナマイスター
(No.5)
3段落目のSort(slist2=[8,2],2)の処理で
[8,2]→[8],[2]に分解→併合した[2,8]を返す  
としています。少し適当に書き過ぎました。
2022.04.23 16:25
あさこさん  
(No.6)
何度も申し訳ありません!

問題文の副プログラムMergeのどの部分で、更新されたslist2が返却されているのかが分からないのです。
listの内容が更新されることは分かるのですが…(泣)
2022.04.23 16:40
chihiroさん 
FE プラチナマイスター
(No.7)
表2  Mergeの引数の仕様で、list[]の入力/出力が出力となっているので、併合後のlistが返却値となります。Mergeのプログラム中にはlistを返却しているような箇所は見当たらないので、そういう仕様なんだなと納得してください。
2022.04.23 16:50
あさこさん  
(No.8)
何度もありがとうございました!
2022.04.23 20:35

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop