2
同じ行の点のリストが与えられたら、各点の隣接する点を見つける必要があります。 See the image for illustration同じ行の隣接する点の比較
私はすべての点の座標を知っています。これらのポイントは入力リストでランダムに並べられます。
私のアプローチ:
- 、リスト内の最初のポイントを選択してください。この点からすべての点までのベクトルを見つけます。
- 各ベクトルについて、反時計回りの角度を見つけます。
- 可能なのは2つの角度(a1、a2)だけです。角度a1を有するすべての点のリストと、角度a2を有する点のリストを形成する。
- 各リストについて、ユークリッド距離/ベクトル長を調べてください。
- このリストを昇順に並べ替えます。これを使用して相対的な順序付けを行うことができます。
例:P2は、リスト内の最初のポイントであることを起こる場合、次に、小さい方の角度が大きく時計回りの角度がそう210 なり、30であると仮定すると、P1は、一つのリストにあるであろう。 p3、p4、p2は他のリストにあります。今、私は点の相対的な順序を得ることができます。
もっと良い解決策はありますか?
すべての点が直線上にあることが保証されている場合、1つの座標でソートするだけでは十分ではありませんか? (ただし、点の間で変化する座標を選択する必要があります。線がx軸に垂直な場合は、xを選択しないでください) –
はGrahamスキャンの比較アルゴリズムのように聞こえる – osanger