Comment trier un tableau de tableaux par le premier élément ?
Vous disposez d'un tableau de tableaux, tel que [[4, 204 ], [10, 39], [1 500]]. Vous souhaitez les trier selon le premier élément du sous-tableau pour obtenir [[1, 500], [4, 204], [10, 39]]. Voici comment procéder en C :
Approche : trier les indices au lieu des tableaux
Plutôt que de trier le tableau lui-même, vous pouvez trier un tableau d'indices qui pointent vers le tableau d'origine. Cette approche est plus efficace pour les grands tableaux où chaque sous-tableau contient une quantité importante de données ou lorsque l'ordre d'origine doit être préservé.
Étape 1 : Créer un tableau d'index
Initialisez un tableau d'indices nommé index, où les indices vont de 0 à n-1, où n est le nombre de sous-tableaux.
Étape 2 : Définir un prédicat de tri
Créez un prédicat de tri qui compare les premiers éléments des sous-tableaux à l'aide du tableau d'index. Le prédicat doit renvoyer vrai si le premier élément du sous-tableau à l'index n1 est inférieur à celui à l'index n2.
bool compareFirstElement(int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; }
Étape 3 : Trier le tableau d'index
Triez le tableau d'index à l'aide de la fonction std::sort et du prédicat défini. Cela réorganisera les indices dans l'ordre croissant en fonction des premiers éléments des sous-tableaux.
std::sort(index, index + 3, compareFirstElement);
Étape 4 : Utiliser des indices triés pour accéder aux données
Pour accédez aux données triées, utilisez le tableau d'index trié pour pointer vers les sous-tableaux dans le timeTable 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"; }
Exemple en direct :
[Exemple en direct](https://wandbox.org/permlink/sXTyuT2fubLi4j7i)
Remarque : Cette approche peut également être appliquée pour trier des tableaux d'objets ou des structures contenant des éléments triables données.
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!