C ++ qsort () - Biblioteca C ++ Padrão

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 numelementos, 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

Artigos interessantes...