HOME»基本情報技術者試験掲示板»基本情報技術者過去問題 平成30年春期 午後問8
投稿する

基本情報技術者過去問題 平成30年春期 午後問8 [3623]

 kikiさん(No.1) 
基本情報技術者過去問題 平成30年春期 午後問8の設問2のeの解説の
「3~5行目  初回の downHeap の開始時点でデータは 20 30 45 15 5 10 60 と並んでいて、n の初期値は 0 ですから、tmp には heap[0] の左の子の要素番号 1 が入ります。」
これの開始時点でデータは 20 30 45 15 5 10 60 と並んでいてとありますがこれはなぜこの並び方だとわかるのでしょうか?
2021.09.25 02:00
サスティンペダルさん(No.2) 
実際にheapSortのプログラムを見てみると、
downHeapを呼び出す前にswapの処理を行っています。

>・swap(heap, 0, last)
>・downHeap(heap, last - 1)

swapは配列の入れ替えを行う副プログラムで、
ここでは配列heapの先頭と末尾の要素を入れ替えています。
なので、downHeapの開始時点で

20 30 45 15 5 10 60

60 30 45 15 5 10 20

となることがわかります。
2021.09.28 13:33
サスティンペダルさん(No.3) 
↑逆でした。。

60 30 45 15 5 10 20

20 30 45 15 5 10 60

となることがわかります。
2021.09.28 13:39
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop