Maison > développement back-end > C++ > Comment trier un tableau 2D en C à l'aide de qsort() ?

Comment trier un tableau 2D en C à l'aide de qsort() ?

Susan Sarandon
Libérer: 2024-11-05 06:53:02
original
441 Les gens l'ont consulté

How to Sort a 2D Array in C   Using qsort()?

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal