Tri des tableaux par premier élément dans les sous-tableaux en C
Les tableaux originaux sont constitués de sous-tableaux avec deux éléments : par exemple, [[4, 204] , [10, 39], [1 500]]. Le but est de trier ces tableaux en fonction du premier élément de chaque sous-tableau : [[1, 500], [4, 204], [10, 39]].
Technique de tri
Fait intéressant, il n'est pas nécessaire de manipuler le tableau d'origine lui-même. Au lieu de cela, une meilleure approche consiste à trier un tableau d'indices qui pointent vers les sous-tableaux du tableau d'origine, puis à utiliser les indices triés pour accéder aux éléments triés.
Avantages de cette technique
Le tri des indices au lieu du tableau d'origine est avantageux lorsque :
Exemple de mise en œuvre
Considérez l'exemple suivant 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"; } }
Dans cet exemple :
Remarque : Ceci La technique de tri est applicable non seulement aux tableaux de sous-tableaux, mais également aux scénarios dans lesquels plusieurs tableaux doivent être triés en parallèle en fonction des données de l'un des tableaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!