Heim > Artikel > Backend-Entwicklung > Wie sortiere ich ein Array von Arrays nach dem ersten Element in C?
Wie sortiere ich ein Array von Arrays nach dem ersten Element?
Sie haben ein Array von Arrays, wie zum Beispiel [[4, 204 ], [10, 39], [1, 500]]. Sie möchten sie nach dem ersten Element des Subarrays sortieren, um [[1, 500], [4, 204], [10, 39]] zu erhalten. So machen Sie es in C:
Ansatz: Sortieren von Indizes anstelle von Arrays
Anstatt das Array selbst zu sortieren, können Sie ein Array von Indizes sortieren, auf die verweisen das ursprüngliche Array. Dieser Ansatz ist effizienter für große Arrays, bei denen jedes Unterarray eine erhebliche Datenmenge enthält oder wenn die ursprüngliche Reihenfolge beibehalten werden muss.
Schritt 1: Erstellen Sie ein Index-Array
Initialisieren Sie ein Array von Indizes mit dem Namen index, wobei die Indizes von 0 bis n-1 reichen, wobei n die Anzahl von ist Subarrays.
Schritt 2: Definieren Sie ein Sortierprädikat
Erstellen Sie ein Sortierprädikat, das die ersten Elemente der Subarrays mithilfe des Indexarrays vergleicht. Das Prädikat sollte „true“ zurückgeben, wenn das erste Element des Subarrays am Index n1 kleiner ist als das am Index n2.
bool compareFirstElement(int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; }
Schritt 3: Sortieren Sie das Index-Array
Sortieren Sie das Index-Array mit der Funktion std::sort und dem definierten Prädikat. Dadurch werden die Indizes in aufsteigender Reihenfolge basierend auf den ersten Elementen der Subarrays neu angeordnet.
std::sort(index, index + 3, compareFirstElement);
Schritt 4: Verwenden Sie sortierte Indizes, um auf Daten zuzugreifen
An Greifen Sie auf die sortierten Daten zu und verwenden Sie das sortierte Indexarray, um auf die Unterarrays in der TimeTable zu verweisen array.
for (int i = 0; i < 3; ++i) { std::cout << "The index is " << index[i] << ". The data at this index is [" << timeTable[index[i]][0] << " " << timeTable[index[i]][1] << "]\n"; }
Live-Beispiel:
[Live-Beispiel](https://wandbox.org/permlink/sXTyuT2fubLi4j7i)
Hinweis: Dieser Ansatz kann auch zum Sortieren von Arrays von Objekten oder Strukturen angewendet werden, die sortierbare Elemente enthalten Daten.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array von Arrays nach dem ersten Element in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!