全探索 with 線形探索法
全探索 with 線形探索法
以下の3つの全探索問題を線形探索法を用いて解く方法を見ていく
- 1つの配列から1つの要素を見つける O(N)
- 2つの配列から各々1つの要素を取り出し、最適な組み合わせを見つける O(N2)
- ある集合から最適な部分集合を見つける O(2N)
線形探索法とは (About Linear Search Method)
一つ一つの要素を順に調べていく
問題例
1. 1つの配列から1つの要素を見つける
2. 2つの配列から各々1つの要素を取り出し、最適な組み合わせを見つける O(N2)
3. ある集合から最適な部分集合を見つける O(2N)
部分集合を2進数を使って表す方法
例: {a,b,c}
の部分集合
添字 | 部分集合 | 2進数 |
---|---|---|
0 | {} |
0b000 |
1 | {c} |
0b001 |
2 | {b} |
0b010 |
3 | {b,c} |
0b011 |
4 | {a} |
0b100 |
5 | {a,c} |
0b101 |
6 | {a,b} |
0b110 |
7 | {a,b,c} |
0b111 |
まとめ
全探索においては、「どうすればすべての場合を考慮し尽くせるか」ということが重要となる。
参考書籍
https://www.amazon.co.jp/問題解決力を鍛える!アルゴリズムとデータ構造-KS情報科学専門書-大槻兼資-ebook/dp/B08PV83L3N