C ++ qsort () - Biblioteca estándar de C ++

La función qsort () en C ++ ordena una matriz dada en orden ascendente usando el algoritmo Quicksort.

La función qsort () usa una función de comparación para decidir qué elemento es más pequeño / mayor que el otro.

prototipo qsort ()

 void qsort (void * base, size_t num, size_t size, int (* comparar) (const void *, const void *));

La función se define en el archivo de encabezado.

La función qsort () ordena la matriz dada apuntada por base en orden ascendente. La matriz contiene numelementos, cada uno de ellos con un tamaño de bytes.

La función señalada por comparar se usa para comparar dos elementos de la matriz. Esta función modifica el contenido de la propia matriz en orden ascendente.

Sin embargo, si dos o más elementos son iguales, su orden no está definido.

Parámetros qsort ()

  • base: puntero al primer elemento de la matriz para ordenar
  • num: número de elemento en la matriz
  • tamaño: tamaño en bytes de cada elemento de la matriz
  • comparar: un puntero a una función que compara dos elementos. Vuelve
    • un entero negativo si el primer argumento es menor que el segundo
    • un entero positivo si el primer argumento es mayor que el segundo
    • cero si ambos argumentos son iguales

El prototipo de la función de comparación se ve así:

 int compare (const void * a, const void * b);

qsort () Valor de retorno

La función qsort () no devuelve nada. La matriz ordenada se señala por base.

Ejemplo: ¿Cómo funciona la función qsort ()?

 #include #include using namespace std; int compare(const void* a, const void* b) ( const int* x = (int*) a; const int* y = (int*) b; if (*x> *y) return 1; else if (*x < *y) return -1; return 0; ) int main() ( const int num = 10; int arr(num) = (9,4,19,2,7,9,5,15,23,3); cout << "Before sorting" << endl; for (int i=0; i 

When you run the program, the output will be:

 Before sorting 9 4 19 2 7 9 5 15 23 3 After sorting 2 3 4 5 7 9 9 15 19 23

Articulos interesantes...