Tecnología

Inicio

Cómo utilizar la función Ordenar rápida en C ++ en el arreglo de enteros

"Tipo Quick" es un algoritmo de clasificación que se ejecuta en el registro de n * (n) el tiempo, lo que hace muy eficiente para la clasificación de grandes conjuntos de datos. Se utiliza un enfoque de divide y vencerás que divide los conjuntos de datos de manera eficiente para trabajar en múltiples componentes simultáneamente. La biblioteca estándar de C ++ proporciona una función que implementa el algoritmo de ordenación rápida. Ordenar una lista de números enteros con ordenamiento rápido es sencillo cuando se utiliza esta aplicación librería estándar del algoritmo.

Instrucciones

1 Incluirá la norma cabecera de la biblioteca "stdlib.h". Esta cabecera contiene la implementación del ordenamiento rápido, al que se accede llamando a la función "qsort":

incluir <stdlib.h>

2 Cree su función de comparación. La función de comparación acepta dos argumentos de tipo "void *", que debe ser arrojado a un tipo de datos específico y luego compara. Si el primer elemento es menor que el segundo, un valor negativo debe ser devuelto de esta función. Si el primer elemento es mayor que el segundo, devolver un valor positivo. Si ambos elementos son iguales, devolver cero:

int CompareIntegers (const void

arg1, arg2 const void)

{

int val1 = *(int *) arg1;

int val2 = * (int *) arg2;

si (val1 & lt; val2)

{

return -1;

}

else if (val1> val2)

{

volver 1;

}

// Si llegamos aquí, ambos elementos son iguales

return 0;

}

3 En su código, llamar a la función qsort. La función qsort toma cuatro argumentos: un puntero a la matriz para clasificar, el número de elementos de la matriz, el tamaño de cada elemento de la matriz, y la función de comparación.

// Ordenar la matriz de enteros

qsort (arrayToSort, NumberOfElements, sizeof (int), CompareIntegers);

Consejos y advertencias

  • La función de comparación puede ser modificado para tener cualquier tipo de datos. Utilice esta función para ordenar matrices de estructuras, clases o cualquier objeto puede codificar.
  • La función qsort también se puede usar con contenedores STL. No es estrictamente necesario el uso de matrices dinámicas.
  • Asegúrese de que el array a ordenar se ha inicializado correctamente y llena de valores. Una matriz creada incorrectamente puede dar lugar a excepciones de referencia nulos.
  • Asegúrese de que el recuento de los elementos previstos para la función qsort es exacta. Un valor incorrecto puede resultar bien en una disposición parcialmente sin ordenar o un fallo de segmentación.
  • Asegúrese de que el tamaño de los elementos previstos para qsort es exacta. Un tamaño de elemento incorrecto puede provocar fallos de corrupción de memoria y la segmentación.