100×100の格子上に四角形が32個あります(図1)*1。ある四角形を新たに格子の上に置いたときに,元からある四角形のうち,これに重なるものの番号を示してください。ただし,この問題で扱うすべての四角形のX,Y座標は,0から100までの整数値をとることになります。 私は待ち合わせが苦手です。人の顔を覚えるのがまったく不得意で,ましてや多くの人の中から見つけ出すとなるともうパニックになってしまうからです。そういうときに限って携帯電話を忘れていたりして…。 「多量のデータの中から条件に合致するものを探索する」ことは本当に大変です。一番の問題は,時間がかかるところでしょう。1対多で検索する場合はともかく,多対多で探索するときには,アルゴリズムの優劣がモノをいいます。今回はその一例として「四角形の重なり具合を調べる方法」を取り上げ,ここからアルゴリズムの工夫の仕方について紹介します。 今回紹介する
![第7回 多対多の関係を賢く扱う](https://cdn-ak-scissors.b.st-hatena.com/image/square/bed39b5962a5d552c95b6d796db8f55e72d32943/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fimages%2Fn%2Fxtech%2F2020%2Fogp_nikkeixtech_hexagon.jpg%3F20220512)