ubuntuusers.de

PHP array sortieren

Status: Gelöst | Ubuntu-Version: Kubuntu 12.10 (Quantal Quetzal)
Antworten |

zettberlin

(Themenstarter)
Avatar von zettberlin

Anmeldungsdatum:
23. Oktober 2006

Beiträge: 623

Wohnort: Celle

user unknown schrieb:

@zettberlin:

Kann man, wenn die Liste nach x sortiert ist. Alles, was seinem direkten Vorgänger zu nahe kommt, wird verworfen und fertig.

Wenn aber ein Punkt verworfen wurde muss der nächste mit dem Vorvorgänger verglichen werden. Und wie macht man das praktisch, bei PHP?

ziemlich primitiv: man aktualisiert den Speicherplatz für den Vorgänger nur, wenn ein Eintrag NICHT verworfen wird. Damit bleibt der Vorgänger erhalten, bis ein akzeptabler Nachfolger auftaucht...

Und was die Sache noch mal erschwert ist, dass es nicht um exakte Werte geht, sondern um ungefähre.

Ich denke Du hast einen Schwellwert, wie nahe die Punkte liegen dürfen. Dafür ist doch unerheblich, wieviele Nachkommastellen Du kennst.

Ja, eigentlich schon, die Nachkommastellen verhindern aber weitgehend einfache Tricks wie in_array, man kann bei einem Treffer für x nicht einfach suchen lassen, ob das dazu gehörende y *exakt* noch einmal irgendwo vorkommt.

Wenn Du Punkt m und m+1 hast, und x(m), x(m+1), y(m), y(m+1) nimmst Du erst die Abstände: dx=x(m+1)-x(m), dy=y(m+1)-y(m). dx*dx+dy*dy ?>= Schwellwert². Das meine ich mit Pythagoras ohne Wurzelziehen.

Danke für die Wiederbelebung uralter Matheschläue! Mein alter Pythagoras erholt sich langsam von der Hibernation und kann bestimmt bald wieder zum Einsatz kommen 😉

Allerdings ist mir noch ein simplerer Trick eingefallen:

1
SELECT pid,location FROM projects ORDER BY location

Macht erst mal genau das, was ich ursprünglich mit PHP machen wollte....

Antworten |