Heim > Artikel > Backend-Entwicklung > Wie sortiere ich ein Array von Arrays nach dem ersten Element jedes Subarrays in C?
Sortieren eines Arrays von Arrays nach dem ersten Element im Unterarray in C
Bei einem gegebenen Array von Arrays besteht die Aufgabe darin, sie basierend auf zu sortieren das erste Element jedes Subarrays. Betrachten Sie ein Array wie [[4, 204], [10, 39], [1, 500]]. Nach der Sortierung sollte es [[1, 500], [4, 204], [10, 39] sein.
Ansatz mit Indexsortierung:
Stattdessen Neben der direkten Sortierung des Arrays besteht eine effizientere Methode darin, ein Array von Indizes zu sortieren, die auf die Unterarrays verweisen. Dadurch entfällt die Notwendigkeit einer komplexen Manipulation des ursprünglichen Arrays in der Sortierfunktion.
Hier ist eine Beispielcode-Implementierung:
#include <algorithm> #include <iostream> int main() { int index[3] = {0, 1, 2}; int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}}; // Sort the indices based on the first item of each subarray std::sort(index, index + 3, [&](int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; }); // Iterate over the sorted indices and access the corresponding subarrays for (int i = 0; i < 3; ++i) { std::cout << "The index is " << index[i] << ". The data at this index is ["; std::cout << timeTable[index[i]][0] << " " << timeTable[index[i]][1] << "]\n"; } return 0; }
In diesem Snippet erstellen wir ein Index-Array und sortieren es nach ein benutzerdefiniertes Sortierkriterium, das die ersten Elemente der Subarrays bei den Indizes n1 und n2 vergleicht. Nach dem Sortieren können wir über das neu geordnete Indexarray auf die sortierten Unterarrays zugreifen.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array von Arrays nach dem ersten Element jedes Subarrays in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!