Exporter (0) Imprimer
Développer tout
div
eof
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

qsort

effectue un tri rapide. un plus version sécurisée de cette fonction est disponible ; consultez qsort_s.

void qsort(
   void *base,
   size_t num,
   size_t width,
   int (__cdecl *compare )(const void *, const void *) 
);
base

Début de tableau cible.

num

taille du tableau dans les éléments.

width

taille d'élément en octets.

compare

Pointeur vers une routine fournie par l'utilisateur qui compare deux éléments de tableau et retourne une valeur qui spécifie les relations.

La fonction d' qsort implémente un algorithme de rapide-tri pour trier un tableau d'éléments d' num , chacun d'octets d' width . L'argument base est un pointeur vers la base du tableau à trier. qsort remplace ce tableau à l'aide de les éléments triés.

qsort appelle la routine d' compare une ou plusieurs fois pendant le tri, et passe des pointeurs vers deux éléments de tableau à chaque appel.

compare( (void *) & elem1, (void *) & elem2 );

La routine compare les éléments et retourne une des valeurs suivantes.

comparez la valeur de retour de fonction

Description

< 0

elem1 moins qu' elem2

0

elem1 équivalent à elem2

> 0

elem1 supérieur elem2

Le tableau est triée en augmentant la commande, comme défini par la fonction de comparaison. Pour trier une classe par ordre décroissant, inverser le sens de « supérieur à » et « inférieur à » dans la fonction de comparaison.

cette fonction valide ses paramètres. Si compare ou num est NULL, ou si base est NULL et *num est différent de zéro, ou si width est inférieur à zéro, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si est autorisé à l'exécution de se poursuivre, la fonction retourne et errno est défini à EINVAL.

routine

en-tête requis

qsort

<stdlib.h> et <search.h>

Pour des informations de compatibilité supplémentaires, consultez Compatibilité.

// crt_qsort.c
// arguments: every good boy deserves favor

/* This program reads the command-line
 * parameters and uses qsort to sort them. It
 * then displays the sorted arguments.
 */

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int compare( const void *arg1, const void *arg2 );

int main( int argc, char **argv )
{
   int i;
   /* Eliminate argv[0] from sort: */
   argv++;
   argc--;

   /* Sort remaining args using Quicksort algorithm: */
   qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare );

   /* Output sorted list: */
   for( i = 0; i < argc; ++i )
      printf( " %s", argv[i] );
   printf( "\n" );
}

int compare( const void *arg1, const void *arg2 )
{
   /* Compare all of both strings: */
   return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
}
 le garçon performances chaque favoriser bonne
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft. Tous droits réservés.