Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

qsort

Realiza una ordenación rápida. Una versión más segura de esta función está disponible; vea qsort_s.

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

base

Inicio de la matriz de destino.

num

Tamaño de la matriz de elementos.

width

Tamaño del elemento en bytes.

compare

Puntero a una rutina proporcionada por que compara dos elementos de matriz y devuelve un valor que especifica la relación.

La función de qsort implementa un algoritmo de la rápido-ordenación para ordenar una matriz de elementos de num , cada uno de los bytes de width . El argumento base es un puntero a la base de la matriz que se ordenen. qsort sobrescribe esta matriz mediante los elementos ordenados.

qsort llama a la rutina de compare una o más veces durante la ordenación, y pasa punteros a dos elementos de la matriz en cada llamada.

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

la rutina compara los elementos y devuelve uno de los valores siguientes.

compare el valor devuelto de la función

Descripción

< 0

elem1 menos que elem2

0

equivalente deelem1 a elem2

> 0

elem1 mayor que elem2

La matriz se ordena en sentido petición, como definido por la función de comparación. Para ordenar una matriz en orden descendente, invierta el sentido de “mayor que” y “menor que” en la función de comparación.

esta función valida sus parámetros. Si compare o num es NULL, o si base es NULL y *num es distinto de cero, o si es width menor que cero, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, la función devuelve y errno se establece en EINVAL.

rutina

Encabezado necesario

qsort

<stdlib.h> y <search.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad.

// 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 );
}
 el chico merece cada favor kind

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft