Sortieren



  • Hallo,

    das Sortieren von X:Y Ordinaten, hat eine lange Historie, bisher hat es mir
    gereicht via : std:sort(begin,end,SortXY) gute Ergebnisse zu erzielen.

    Standard pair sort:

    static bool SortXY(const CPoint &p1, const CPoint &p2)
    {
    	return (p1.x == p2.x ? p1.y < p2.y : p1.x < p2.x);
    }
    

    Auch sehr Wirksam:

    static bool SortNear(const CPoint &p1, const CPoint &p2)
    {
    	return  (p1.x*p1.x + p1.y*p1.y) < (p2.x*p2.x + p2.y*p2.y);
    }
    

    Unlängst stelle ich fest, das es auch unrichtige folgen in der Sortierung gibt, auch ein invertierter zweiter Durchgang bringt keine Besserung.

    Gibt es bekannte GPU -Sort Funktionen ? Oder noch bessere Verfahren zur
    Sortierung von x,y Pärchen ?

    (Sicher kann man sich an dem Thema lange aufhalten)

    Danke für Hinweise
    Karsten.



  • Achromat schrieb:

    Unlängst stelle ich fest, das es auch unrichtige folgen in der Sortierung gibt, auch ein invertierter zweiter Durchgang bringt keine Besserung.

    Was is?


Anmelden zum Antworten