Tri d'un tableau 2D en C à l'aide de qsort()
Lorsque nous sommes confrontés à la tâche de trier un tableau 2D, on peut envisager d'utiliser construit -dans des fonctions pour simplifier le processus. En C , la fonction qsort() s'impose comme un outil puissant à cet effet. Contrairement à son homologue sort(), qsort excelle dans la gestion du tri sur plusieurs colonnes pour les tableaux fixes.
La fonction de comparaison de qsort() adopte une approche unique, utilisant une série d'instructions ternaires pour comparer efficacement les éléments. Le résultat est un algorithme qui gère habilement le tri des tableaux en fonction de valeurs de colonne spécifiques.
Considérez l'exemple suivant, où un tableau 2D est rempli de données aléatoires et nécessite un tri en fonction de sa première colonne :
<code class="cpp">#include <iostream> #include <random> #include <algorithm> int main() { int ar[10][2]; // Populate array with random data std::random_device rd; std::default_random_engine rng(rd()); std::uniform_int_distribution<> dist(1, 20); std::for_each(std::begin(ar), std::end(ar), [&](int(&ar)[2]) { ar[0] = dist(rng); ar[1] = dist(rng); }); // Sort the array std::qsort(ar, 10, sizeof(*ar), [](const void *arg1, const void *arg2) -> int { int const *lhs = static_cast<int const *>(arg1); int const *rhs = static_cast<int const *>(arg2); return (lhs[0] < rhs[0]) ? -1 : ((rhs[0] < lhs[0]) ? 1 : (lhs[1] < rhs[1] ? -1 : ((rhs[1] < lhs[1] ? 1 : 0)))); }); // Display sorted array std::for_each(std::begin(ar), std::end(ar), [](const int(&ar)[2]) { std::cout << ar[0] << ',' << ar[1] << '\n'; }); return 0; }</code>
Dans cet exemple, le comparateur garantit que les valeurs de la première colonne sont comparées avec diligence pour obtenir le tri souhaité. En tirant parti de qsort() et en adaptant le comparateur à vos besoins spécifiques, vous pouvez trier efficacement les tableaux 2D en C , ce qui facilite la manipulation des 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!