Maison >développement back-end >C++ >Comment comparer à l'aide d'algorithmes de tri en C++

Comment comparer à l'aide d'algorithmes de tri en C++

WBOY
WBOYoriginal
2023-09-20 10:57:271102parcourir

Comment comparer à laide dalgorithmes de tri en C++

Comparaison utilisant des algorithmes de tri en C++

Les algorithmes de tri sont l'un des algorithmes les plus basiques et les plus couramment utilisés en informatique. En programmation, nous avons souvent besoin de trier un ensemble de données afin de mieux organiser et traiter les données. C++ fournit une variété de fonctions de bibliothèque d'algorithmes de tri, telles que std::sort et std::stable_sort. Cet article explique comment utiliser les algorithmes de tri en C++ à des fins de comparaison et fournit des exemples de code spécifiques.

1. Utilisation de la fonction std::sort

La fonction std::sort est une fonction de tri couramment utilisée dans la bibliothèque standard C++. Il peut trier les données dans un tableau ou un conteneur. Voici le prototype de la fonction std::sort :

template
void sort (RandomAccessIterator en premier, RandomAccessIterator en dernier)

Ce qui suit est un exemple de code pour trier à l'aide de la fonction std::sort ; :

#include <iostream>
#include <algorithm>
#include <vector>
 
int main() {
    // 创建一个整数数组
    std::vector<int> arr = {5, 2, 9, 1, 8};
 
    // 使用std::sort函数对数组进行排序
    std::sort(arr.begin(), arr.end());
 
    // 输出排序后的数组
    for (int num : arr) {
        std::cout << num << " ";
    }
 
    return 0;
}

In Dans le code ci-dessus, nous créons d'abord un tableau d'entiers arr, puis utilisons la fonction std::sort pour trier le tableau. Enfin, nous parcourons le tableau et générons les résultats triés.

2. Utilisation de la fonction std::stable_sort

La fonction std::stable_sort est également une fonction de tri dans la bibliothèque standard C++. La différence avec la fonction std::sort est que la fonction std::stable_sort peut garder deux valeurs relatives égales. ordre des éléments. Voici le prototype de la fonction std::stable_sort :

template
void stable_sort (RandomAccessIterator en premier, RandomAccessIterator en dernier)

Ce qui suit est un exemple de code pour trier à l'aide de la fonction std::stable_sort ; :

#include <iostream>
#include <algorithm>
#include <vector>
 
int main() {
    // 创建一个结构体数组
    struct Person {
        std::string name;
        int age;
    };
 
    std::vector<Person> people = {
        {"Alice", 20},
        {"Bob", 18},
        {"Carol", 22},
        {"David", 20}
    };
 
    // 使用std::stable_sort函数对结构体数组按照年龄进行排序
    std::stable_sort(people.begin(), people.end(), [](const Person& a, const Person& b) {
        return a.age < b.age;
    });
 
    // 输出排序后的结果
    for (const Person& p : people) {
        std::cout << p.name << " " << p.age << std::endl;
    }
 
    return 0;
}

In Dans le code ci-dessus, nous créons un tableau structuré people, dont chaque élément contient le nom et l'âge d'une personne. Ensuite, nous utilisons la fonction std::stable_sort pour trier le tableau de structure par âge. Lors du tri, nous avons utilisé une expression lambda pour spécifier la comparaison basée sur le membre age de la structure Person. Enfin, nous parcourons le tableau et générons les résultats triés.

Résumé :

Dans cet article, nous avons présenté comment utiliser les algorithmes de tri en C++ à des fins de comparaison et fourni des exemples de code spécifiques. En maîtrisant et en appliquant de manière flexible l'algorithme de tri en C++, vous pouvez mieux organiser et traiter les données et améliorer l'efficacité et les performances du programme. J'espère que cet article sera utile à votre étude et à votre pratique.

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!

Déclaration:
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