Angenommen, Sie erhalten eine Menge von n Punkten in der Ebene und möchten prüfen, ob sie ein konvexes n-Polygon bilden, dh ob sie alle auf der konvexen Hülle liegen. Ich habe mich gefragt, ob irgendjemand weiß, wie man das in o (nlogn) Zeit macht, dh ohne den CH zu berechnen.
cg.comp-geom
Babis Tsourakakis
quelle
quelle
Antworten:
Das scheint zumindest in den Vergleichs / Algebraischen Baummodellen unwahrscheinlich. Definition zuerst:
Eine Punktmenge befindet sich in konvexer Position, wenn kein Punkt von P als konvexe Kombination der verbleibenden Punkte von P geschrieben werden kann .P P P
Die Entscheidung, ob eine Menge von Zahlen alle verschieden sind, dauert Ω ( n log n ) (dies ist als EINZIGARTIGKEIT bekannt). Wenn eine solche Menge von n Zahlen X gegeben ist , ordne sie der Menge von Punkten P = { ( x , x 2 ) | zu x ∈ X } . Wenn es keine wiederholte Zahl gibt, befinden sich die Punkte in konvexer Position.n Ω(nlogn) n X
Wenn es eine wiederholte Nummer gibt, entspricht diese wiederholte Nummer einem Punkt, der als konvexe Kombination der verbleibenden Punkte geschrieben werden kann. Die Punkte befinden sich nämlich nicht in einer konvexen Position.
Die Entscheidung, ob sich ein Punktsatz in einer konvexen Position befindet, ist so schwer wie EINZIGARTIG.
quelle
Sobald Sie die Reihenfolge der Punkte kennen, sollte der Winkel von jedem Punkt zum nächsten Punkt in der Sequenz monoton sein. Dies ist eine notwendige und meines Erachtens ausreichende Voraussetzung.
Das Erhalten des inneren Punktes wird dem Leser als Übung überlassen.
quelle