HOME»基本情報技術者試験掲示板»基本情報技術者過去問題 平成30年春期 午後問8
投稿する
»[3621] アセンブラ平成29年秋 誤字? 投稿数:2
»[3620] 平成24年秋期 午後 情報セキュリティ 投稿数:3
基本情報技術者過去問題 平成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 と並んでいてとありますがこれはなぜこの並び方だとわかるのでしょうか?
「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の先頭と末尾の要素を入れ替えています。
なので、downHeapの開始時点で
20 30 45 15 5 10 60
↓
60 30 45 15 5 10 20
となることがわかります。
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
となることがわかります。
60 30 45 15 5 10 20
↓
20 30 45 15 5 10 60
となることがわかります。
2021.09.28 13:39
その他のスレッド
»[3622] 平成16年秋期問64 回線速度の計算 投稿数:3»[3621] アセンブラ平成29年秋 誤字? 投稿数:2
»[3620] 平成24年秋期 午後 情報セキュリティ 投稿数:3