お世話になっております。
今、『プログラムコンテスト攻略のためのアルゴリズムとデータ構造(螺旋本)』でアルゴリズムの勉強をしていて、「どの程度基本的なアルゴリズムを把握しているべきなのか」ということに疑問を持ちました。
「どの程度把握すべきなのか」の意味ってなんだ???
という話なのですが、今のところ以下の切り口が考えられました。
①学習範囲の話
②理解度の話
①学習範囲の話
基本的なレベルってなんだ?と疑問に思うのですが、一旦ここでは上記の螺旋本で扱っているアルゴリズムを基本的な学習範囲とします。
②理解度の話
ではその螺旋本をどのレベルまで把握していればいいの?となります。
- 理解していればいいの?覚えていなくていいの?
- 「理解している」ってどのレベルのことを指すの?
- 何も見ずにスラスラ書けるレベルになっていればいいの?
ここは「なぜアルゴリズムを勉強するのか」という目的の話に関連してくると思うのですが、自分でプログラミングを組む時に
- 「これは再帰でできるな、だけど再帰は余分な計算をする可能性があるから動的計画法がいいかな」
- 「モバイルアプリで作るからメモリのリソースがないから◯◯のアルゴリズムは避けるかー(マージソートとか)」とか
- 「ここのアルゴリズムのオーダーが多いから、あのアルゴリズムでオーダー数削減できるなー」とか
を判断できて、螺旋本に書いてあったなーと思い出せる程度になっていればいいのかな?とぼんやり思っています。
でも、一気に書くことを基礎練習としている人がいたなあ...とも思ってしまいます。
皆さんは「基本的なアルゴリズムはどの程度把握すべきなのか」という文言をどう解釈されますでしょうか。
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。