Quicksort zum Sortieren eines Arrays von Objekten nach einem bestimmten Mitglied, C++

class Foo
{
    public:
        int num;
        int other;
};

int main()
{
    Foo bar[10].num = {1, 9, 3, 5, 1, 6, 10, 0, 6, 3};

    //quicksort(bar)

    return 0;
}

Ich will schreiben Sie eine quicksort-Funktion, dass Bestellungen, die 'bar' array 'num' aufsteigend. Nicht ganz sicher, was ist der beste Ansatz zu nehmen, wie ich noch nie eine geschrieben quicksort. Ich sah einige Beispiel-codes, aber ich kann nicht sehen, wie Sie zu ändern für diesen Fall. Ein inplace Sortieren erfolgt durch übergabe von Zeigern auf das erste und Letzte Elemente des Arrays nicht funktioniert, da diese nur sortiert die 'num' - Mitglied nicht das gesamte Objekt. Die Aufteilung der array von Objekten in einen unteren Bereich, einen Hebel und einen oberen Bereich und rekursiv Sortieren jeder sieht vielversprechend aus, aber ich bin mir nicht sicher, wie die übergabe der Werte funktionieren würde...

Jede Hilfe sehr dankbar. Sorry, wenn dies wurde gebeten vor.

  • mögliche Duplikate von c++ - Art mit Strukturen
  • +1 ich denke, es ist durchaus eine Frage wie "was ist, wenn ich etwas komplexer als ein array von Werten"? So kann es nützlich sein, darüber nachzudenken, was genau eine Sortier-Funktion, und was eine compare-Funktion im besonderen. Wie kann die Distanz zwischen komplexen Elemente gemessen werden?
InformationsquelleAutor Rich | 2011-01-02
Schreibe einen Kommentar