Maison >développement back-end >C++ >Comment trier un tableau multidimensionnel par le premier élément de chaque sous-tableau en C ?
Tri des tableaux multidimensionnels par premier élément du sous-tableau en C
Pour trier un tableau multidimensionnel par le premier élément de chaque sous-tableau, il est recommandé d'adopter une approche de tri indirect plutôt que de manipuler directement le tableau. Cela implique de créer un tableau d'indices qui pointent vers le tableau d'origine et de trier les indices en fonction des critères souhaités.
Implémentation
Voici un exemple d'implémentation en 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; } }
Exemple
Pour l'exemple de tableau timeTable, le résultat serait :
Subarray at index 0: [1, 500] Subarray at index 1: [4, 204] Subarray at index 2: [10, 39]
Avantages du tri indirect
Cette méthode de tri indirect offre plusieurs avantages par rapport au tri direct :
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!