Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#12

Re: Prozedur zu langsam, Optimierung nötig

  Alt 9. Mär 2007, 13:07
Zitat von carknue:
Klar, hier ein Beispiel, die erste Zeile ist die Überschrift, die in jeder Datei enthalten ist.

lon lat RXL CID BCCH
6.612051 51.329779 -70 00276 963
6.6122 51.3297 -67 00276 963
6.612051 51.329779 -61 00275 973


Wie gesagt, die Werte sind mit Tabs getrennt. rxl sind immer negative integer von -120 bis -40. lon und lat sind Fließkommazahlen mit unterschiedlich Nachkommastellen.

Den Vorschlag mit Nach Koordinate sortieren, habe ich noch nicht ganz verstanden. Eine Koordinate besteht doch aus zwei Werten, lon und lat. Nach welchem soll ich dann sortieren?

Und wichtig wäre, dass keine doppelten Koordinaten mehr in der Ausgangs Datei sind, sondern nur einmal mit dem größten Wert von rxl

Gruß
Carsten
Sortiert wird erst nach lon, dann nach lat: zum Sortieren must du ja eine Vergleichsfunktion liefern, die vergleicht also lon1 und lon2, nur wenn die gleich sind, vergleicht sie lat1 und lat2. Da das selten vorkommt, hat das nicht mal grossen Einfluss auf die Rechenzeit.

Eine andere Möglichkeit: du liest alles gleich sortiert ein, d.h. jeder Record wird gleich am richtigen Platz eingefügt (mit binärer Suche). Steht da schon einer mit den gleichen Koordinaten, so brauchst du nur den mit dem besseren Wert zu speichern. Dann ist nach dem Einlesen auch schon alles so gut wie fertig. Das gibt natürlich eine Menge Schieberei, aber die braucht jedes Sortierprogramm.

Gruss Reinhard
  Mit Zitat antworten Zitat