平成30年春期午後問8

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
Greetingさん  
(No.1)
解答欄eについて
解説では、「3~5行目  初回の downHeap の開始時点でデータは 20 30 45 15 5 10 60
と並んでいて」とありますが、トレースで上手く導き出せません。

要素番号「20」が一番前に前に来ていると読み取るには、どこに着目すれば
よろしいでしょうか。

お教え頂ければ幸いです。
2021.01.20 11:08
sumakkoさん 
FE シルバーマイスター
(No.2)
>要素番号「20」が一番前に前に来ていると読み取るには、どこに着目すれば
よろしいでしょうか。

まさに、設問cがその箇所に該当すると思います。詳細は当該問題の解説を御参照下さい。
どこに着目するかというと、問題文では、
〔プログラム2の説明〕の(2)の「配列要素 heap[0] の値と配列要素 heap[last] の値を交換し,」の部分と、それに対応する副プログラムheapSortの5行目「・swap(heap,0,last)」
でしょうか。

>トレースで上手く導き出せません。
トレースするのは、副プログラムheapSortですが、1回目のトレースで、 60 30 45 15 5 10 20→20 30 45 15 5 10 60  (heap[0]とheap[last]の交換)になるはずです。
〔プログラム2〕の流れを見ると、downHeap の開始時点では、heapSortは既に、実行されているはずです。
2021.01.20 14:08
Greetingさん  
(No.3)
回答ありがとうございました。

参考にして復習してみます。
2021.01.23 09:59

返信投稿用フォーム

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

その他のスレッド


Pagetop