Maison > développement back-end > C++ > La différence entre C qsort() et C++ sort()

La différence entre C qsort() et C++ sort()

WBOY
Libérer: 2023-09-20 21:25:02
avant
1316 Les gens l'ont consulté

C qsort()与C++ sort()的区别

Ici, nous verrons la différence entre qsort() en C et sort() en C++.

Le langage C fournit la fonction qsort(), qui peut être utilisée pour trier des tableaux. Les paramètres et la syntaxe de la fonction sont indiqués ci-dessous.

void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));
Copier après la connexion

Cette fonction accepte l'adresse de base du tableau, le nombre d'éléments dans le tableau, la taille de chaque élément du tableau et une fonction de comparaison.

C++ fournit la fonction sort(), qui se trouve en C++ STL. Ses paramètres et sa syntaxe sont indiqués ci-dessous.

void sort(T first, T last, Compare c);
Copier après la connexion

Il n'y a aucune garantie que l'ordre des éléments répétés soit préservé. Pour atteindre cet objectif, nous pouvons utiliser stable_sort fourni par C++ STL.

Différence entre qsort() et sort()

qsort() en C sort() en C++
Il utilise un algorithme de tri rapide. Il utilise l'introsort. Il s'agit d'un algorithme de tri hybride. Différentes implémentations utilisent différents algorithmes. GNU C++ STL utilise un tri hybride en trois parties. Introsort, Quicksort et Tri par insertion.
La norme C ne mentionne pas ce problème.
La complexité de cet algorithme de tri. Dans ce cas, la complexité de la fonction sort() de C++11 est O(n logn). Certaines versions précédentes de la fonction sort() avaient une complexité dans le pire des cas de O(n2), alors que dans le cas moyen, leur complexité était O(nlogn). Le temps d'exécution de ce type est comparé à sort() le temps d'exécution est inférieur à qsort(). qsort() n'est pas assez flexible pour différents types. sort() le temps d'exécution est inférieur à qsort(). qsort() n'est pas assez flexible pour différents types sort() est flexible. Il peut trier les tableaux C, les vecteurs C++, les deques C++ et certains autres conteneurs. Cette méthode de tri n'est pas de type sécurisé. Elle utilise des pointeurs vides non sécurisés pour accéder aux données. Ceci. La technique de tri est plus sûre. Elle ne nécessite pas l'utilisation de pointeurs vides dangereux pour accéder aux 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:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal