A função qsort () em C ++ classifica uma determinada matriz em ordem crescente usando o algoritmo Quicksort.
A função qsort () usa uma função de comparação para decidir qual elemento é menor / maior que o outro.
protótipo qsort ()
void qsort (void * base, size_t num, size_t size, int (* compare) (const void *, const void *));
A função é definida no arquivo de cabeçalho.
A função qsort () classifica o array fornecido apontado por base em ordem crescente. A matriz contém num
elementos, cada um com bytes de tamanho.
A função apontada por compare é usada para comparar dois elementos do array. Esta função modifica o conteúdo do próprio array em ordem crescente.
No entanto, se dois ou mais elementos forem iguais, sua ordem é indefinida.
Parâmetros qsort ()
- base: ponteiro para o primeiro elemento da matriz para classificar
- num: número do elemento na matriz
- size: tamanho em bytes de cada elemento na matriz
- compare: um ponteiro para uma função que compara dois elementos. Retorna
- um número inteiro negativo se o primeiro argumento for menor que o segundo
- um número inteiro positivo se o primeiro argumento for maior que o segundo
- zero se ambos os argumentos forem iguais
O protótipo da função de comparação se parece com:
int compare (const void * a, const void * b);
qsort () Valor de retorno
A função qsort () não retorna nada. A matriz classificada é apontada por base.
Exemplo: Como funciona a função 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