Sortieren von Arrays nach dem ersten Element in Subarrays in C
Ursprüngliche Arrays bestehen aus Subarrays mit zwei Elementen: z. B. [[4, 204] , [10, 39], [1, 500]]. Das Ziel besteht darin, diese Arrays basierend auf dem ersten Element jedes Subarrays zu sortieren: [[1, 500], [4, 204], [10, 39]].
Sortiertechnik
Interessanterweise ist es nicht notwendig, das ursprüngliche Array selbst zu manipulieren. Stattdessen besteht ein besserer Ansatz darin, ein Array von Indizes zu sortieren, die auf die Unterarrays innerhalb des ursprünglichen Arrays verweisen, und dann die sortierten Indizes zu verwenden, um auf die sortierten Elemente zuzugreifen.
Vorteile dieser Technik
Das Sortieren von Indizes anstelle des ursprünglichen Arrays ist vorteilhaft, wenn:
Beispielimplementierung
Betrachten Sie das folgende Beispiel Code:
#include <algorithm> #include <iostream> int main() { int index[3] = {0, 1, 2}; int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}}; std::sort(index, index + 3, [&](int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; }); 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"; } }
In diesem Beispiel:
Hinweis: Dies Die Sortiertechnik ist nicht nur auf Arrays von Subarrays anwendbar, sondern auch auf Szenarien, in denen mehrere Arrays basierend auf Daten von einem der Arrays parallel sortiert werden müssen Arrays.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array von Subarrays nach dem ersten Element in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!