平成27年春期 午後問8  アルゴリズム

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
名無しさん  
(No.1)
https://www.fe-siken.com/kakomon/27_haru/pm08.html

お世話になります。
標題の問題なのですが、プログラムの穴埋めがなく、どの設問もひたすらトレースをしまくるという解き方になる気がしているのですが、あまりにも時間が掛かります。。

この問題はこのように解くしかないのでしょうか?

何かいい解き方があれば教えていただきたく存じます。

何卒よろしくお願い申し上げます。
2022.11.19 23:32
jjon-comさん 
FE ゴールドマイスター
(No.2)
出題者は、基本情報技術者試験の合格者に対して、クイックソートを勉強済みでその動作を理解しているという知識レベルを想定しているのでしょう。

試験問題をトレースしながら初めてゼロからその動作イメージを脳裏に描こうとする、だからあまりにも時間が掛かる、という層を合格者レベルと想定していないのでしょう。

(もちろん、初見であっても短時間でこのアルゴリズムを理解できる才能の持ち主もいるのでしょうが、私自身はそうではないので)


> どの設問もひたすらトレースをしまくるという解き方になる気がしている
> この問題はこのように解くしかないのでしょうか?
> 何かいい解き方があれば教えていただきたく存じます。

広義でいうならばトレースと呼ぶことになるのでしょうけれど、
擬似言語のコードを一行一行追って
変数の変化を一つ一つ書き下しているわけではなく、
「学習済みのクイックソートのアルゴリズム知識と、試験問題を対応させる」
という方法で私はこの問題を解きます。

私はこれまで、リンク先の次の解説文を読んだことがなかったのですが、

> 1.  iが1から3まで進み、jは7のままです。
>     3,5,6(i),4,7,2,1(j)

> 2.  x[i] と x[j] を交換(赤字部分)し、i+1、j-1を行うと、以下のように
>     3,5,1,4(i),7,2(j),6

> 3.  iが7の位置まで進み、jは6の位置のままです。
>     3,5,1,4,7(i),2(j),6

> 4.  x[i] と x[j] を交換し、i+1、j-1を行うと、以下のようになります。
>     3,5,1,4,2(j),7(i),6

学習経験者は、この箇所の表記だけを見て
「これはクイックソートの過程だ」と分かるはずです。
このレベルの受験者であれば
「あまりにも時間が掛かります」という状況を脱するんじゃないでしょうか。
2022.11.20 01:06
名無しさん  
(No.3)
なるほど。。
解説ありがとうございました。
2022.11.20 12:04

返信投稿用フォーム

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

その他のスレッド


Pagetop