Frage

Ich versuche herauszufinden, wie man ein Array von CGPoints am schnellsten/saubersten sortieren kann.Ich denke, ich könnte dies mithilfe von Schleifen erreichen, aber das ist möglicherweise nicht die schnellste und ich hoffe, dass es nicht die sauberste Methode ist.Ich möchte ein Array zufälliger CGPoints nehmen und sie beispielsweise nach der kleinsten x-Koordinate bis zur größten oder kleinsten x-Koordinate sortieren Und y-Koordinate zum größten.

War es hilfreich?

Lösung

Nach dem richtigen Kommentar von Chuck habe ich die Antwort mit der SorteningComparator-Methode aktualisiert:

Hier ist der vollständige Code mit Beispieldaten:

Zuerst generieren wir 100 zufällige Werte, die wir in das Array eingeben:

generasacodicetagpre.

und hier ist der eigentliche Code, um das Array zu sortieren:

generasacodicetagpre.

schließlich können wir überprüfen, dass das Array sortiert wurde, indem Sie ihn drucken:

generasacodicetagpre.

Andere Tipps

Das C qsort() Funktion ist wahrscheinlich die beste Wahl, wenn Sie nur über ein einfaches Array von CGPoints verfügen.Etwas wie das:

int compareXCoords(CGPoint *a, CGPoint *b) {
    return b->x - a->x;
}

// Later:

CGPoint points[100];
// initialize points somehow
qsort(points, 100, sizeof(CGPoint), compareXCoords);
// points is now sorted by the points' x coordinates

Je nach meinem Kommentar ist es eine gute Lösung, die sie auf ein NSMUTABLELARRAY einfügen, der die Sortierung entscheidet.

Sie müssen so etwas tun:

generasacodicetagpre.

Vielleicht hat mein Code einige Fehler, ich kann nicht prüfen, ob es jetzt richtig ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top