Sortieren mehrdimensionaler Arrays nach dem ersten Element des Subarrays in C
Um ein mehrdimensionales Array nach dem ersten Element jedes Subarrays zu sortieren, Es wird empfohlen, einen indirekten Sortieransatz zu verwenden, anstatt das Array direkt zu manipulieren. Dazu gehört das Erstellen eines Arrays von Indizes, die auf das ursprüngliche Array verweisen, und das Sortieren der Indizes nach den gewünschten Kriterien.
Implementierung
Hier ist eine Beispielimplementierung in C:
#include <algorithm> int main() { // Sample array of arrays int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}}; // Create an array of indices to use for sorting int indices[3] = {0, 1, 2}; // Sort indices based on the first element of each subarray in timeTable std::sort(indices, indices + 3, [](int i1, int i2) { return timeTable[i1][0] < timeTable[i2][0]; }); // Access the sorted subarrays using the sorted index array for (int i = 0; i < 3; ++i) { std::cout << "Subarray at index " << indices[i] << ": [" << timeTable[indices[i]][0] << ", " << timeTable[indices[i]][1] << "]" << std::endl; } }
Beispiel
Für die Beispielarray timeTable, die Ausgabe wäre:
Subarray at index 0: [1, 500] Subarray at index 1: [4, 204] Subarray at index 2: [10, 39]
Vorteile der indirekten Sortierung
Diese indirekte Sortiermethode bietet mehrere Vorteile gegenüber der direkten Sortierung:
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales Array nach dem ersten Element jedes Subarrays in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!