プログラミング原人の進化ログ

プログラミング原人の進化論

オレ プログラミング ベンキョウ スル。マナンダ コト カク。

アルゴリズム-探索

幅優先探索を実装してみた

幅優先探索の勉強メモです。アルゴリズムの解説と、問題を解くことまでをやっていきたいと思います。 幅優先探索 幅優先探索(Breadth First Search, BFS)はグラフを用いた基本的な探索アルゴリズム。近いものから順にアクセスしていく感じ。例えば次のよう…

深さ優先探索を実装してみた

深さ優先探索を勉強したのでメモしておきます。 深さ優先探索 深さ優先探索(Depth First Search, DFS)はグラフを用いた代表的な探索アルゴリズムです。大まかにスタックを使ったものと再帰を利用したものという2つの実装方法があります。基本的なアイディ…

【AIZU ONLINE JUDGE】 木の復元の問題を解いてみた

木の復元の問題です。木の巡回の応用問題となってます。木の復元 | アルゴリズムとデータ構造 | Aizu Online Judge 例 まず、例を見て解き方を考察します。 先行順巡回で P = {1, 2, 3, 4, 5}、中間順巡回で I = {3, 2, 4, 1, 5} という順でノードが訪問され…

C++で木の巡回を実装する

木構造を持つデータを探索するアルゴリズムに、木の巡回と呼ばれるものがあります。今回は3種類の木の巡回を取り上げ、それらを実装してみます。 木の巡回 木の巡回とは、ある木に属する全てのノードを順番に1回づつ訪問するアルゴリズムのことを指します…

C++で二分探索を実装する

探索アルゴリズム第2弾、前回の線形探索に引き続き、今回は二分探索についてまとめました。 * 目標二分探索を実装できるようになる。 二分探索 二分探索は、整列された配列に適用できる高速な探索方法です。あらかじめ整列されている必要があることに注意が…

番兵を用いたちょっと効率的な線形探索

アルゴリズムとデータ構造について勉強していて、探索アルゴリズムについて学んだのでメモを残しておきます。今回は線形探索です。 実装しながら簡単な説明をして、それから問題を解きます。 目標 線形探索を実装できるようになる。 線形探索 多数の要素が並…