アルゴリズムとデータ構造#0 イントロダクション
はじめに
アルゴリズムとデータ構造入門へようこそ!
この一連の記事では、計算量の基本的な内容からはじめて、メガベンチャーや外資ITの技術面接で聞かれるような込み入った部分まで解説していきます。具体的には、ハッシュや再帰、全探索くらいまでできるように導きます(自分の経験では、面接ではこれくらいまでの知識しか問われませんでした、少なくとも新卒では)。
対象読者
このコースには、「アルゴリズムとデータ構造」に関する知識を深め、特に就活におけるコーディング面接などで困らない程度 の知識を得ようという目的が定められています。
ですので、アルゴリズムとデータ構造ってなんだよ!という方から、ちょっとかじったけど、スタックとかキューとか、ハッシュとかダイクストラとか言われてもよくわかんないよ……という人向けになります。
ただ、一応プログラムを書いたことがあることは仮定します。変数、関数の定義方法とかについては解説しません。配列も、定義方法ぐらいまでは知っておいてくれたほうがいいかもです。
対象ではない読者
ほかのコース(OS、コンパイラ等々)はまたまったく別で考えてほしいですが、本コースは上記の範囲について取り扱いますから、例えば「AtCoderで水色以上ある」みたいな方にとっては、有益な情報を提供できない恐れがあります。ご了承ください。
AtCoderを知らないって?結構。多分対象読者です。
なお、現在「計算量理論」のコースも執筆中で、そちらはチューリングマシンやNP完全問題など、より理論的な部分まで立ち入るつもりです。
コース全体の目次
わからなそうなところから進んでいただいて大丈夫です。なお、記事のタイトル・内容はそれぞれ予定ですので、変更される可能性は大いにあります。
配列、リスト完全攻略
知らないわけにはいかない、再帰とメモ化
グラフと全探索
ソートアルゴリズムいろいろ
高速検索!二分探索のバグらない書き方
スタック、キュー完全攻略
累積和完全攻略
頻出!自力でハッシュを実装せよ
なんか知らんけど出ると話題のLRUキャッシュ
最短距離でゴールしたい!ダイクストラと仲間たち
(おまけ)ライブラリでもいいから使えるようにしたいものたち