Esta diretriz ilustra a classificação de matrizes usando o Qsort () função em c e também ajuda você a entendê -lo por c códigos de exemplo.
qsort () em c
C biblioteca padrão nos facilita com Qsort () função que é simplesmente usada para classificar as matrizes. É uma função extremamente otimizada e rápida que pode operar com qualquer matriz de tipo de dados.
Arquivo de cabeçalho usando QSORT () em C
O Qsort () o método é definido dentro do stdlib.h arquivo de cabeçalho, que deve ser definido antes de implementar Qsort () em um programa C.
#incluirDeclaração de Qsort ()
A declaração de Qsort () A função é a seguinte:
Void Qsort (void *base, número_of_elements, size_of_element, comparação_function)Parâmetros da função qsort ()
Os parâmetros do Qsort () função são:
base: Ponteiro para o primeiro elemento da matriz a ser classificado.
número_of_elements: Número de elementos na matriz a ser classificada.
size_of_element: Tamanho em bytes de cada elemento na matriz.
comparação_function: Ponteiro para uma função de comparação que define a ordem dos elementos.
O que é a função de comparação no Qsort ()
A função de comparação leva dois parâmetros, ambos do tipo const void*, que apontam para os elementos que estão sendo comparados. A função deve retornar um número inteiro menor que, igual ou maior que 0, dependendo se o primeiro elemento deve ser classificado antes, na mesma posição ou após o segundo elemento, respectivamente.
Como o QSORT funciona em C
O Qsort () A função funciona da seguinte maneira:
Observação: Aqui estamos considerando um int arr [] = 5, 2, 8, 3, 1, 9;
1: Inicialmente, a função QSORT será chamada com os seguintes parâmetros:
qsort (arr, 6, sizeof (int), comparação_function);Onde o ARR é o ponteiro para a matriz, 6 é o número de elementos na matriz, sizeof (int) é o tamanho de cada elemento na matriz, e comparação_function é a função que determina a ordem em que os elementos são classificados.
2: A função QSORT seleciona um elemento pivô. Digamos que ele selecione 3 como o pivô.
3: A função QSORT participa a matriz em dois sub-maiores: 2, 1 e 5, 8, 9. O primeiro sub-matriz contém elementos que são menores ou iguais ao pivô, e o segundo sub-matriz contém elementos maiores que o pivô.
4: A função QSORT se chama recursivamente em cada um dos sub-maiores.
5: A função QSORT seleciona pivôs para cada um dos sub-maiores. Digamos que ele selecione 1 e 8 como os pivôs.
6: A função QSORT divide cada sub-matriz em mais dois sub-maiores e se chama recursivamente em cada um desses sub-maiores.
7: A função QSORT combina os sub-marcos classificados de volta em uma única matriz classificada: 1, 2 e 5, 8, 9 se tornam 1, 2, 5, 8, 9.
8: Toda a matriz classificada é devolvida.
Implementação do QSORT na programação C
O código a seguir mostra a implementação de Qsort função na programação C.
#incluirNo código acima, primeiro uma função de comparação é feita com dois parâmetros A1 e B1. Então a execução começa em Main (). Em geral, inicializamos duas variáveis inteiras como i = 0 e num = 6. Então declaramos uma matriz com seis elementos como 5, 2, 8, 3, 1, 9. Depois disto Qsort () ter três parâmetros do tipo de matriz, o parâmetro num diz o total de elementos de uma matriz, sizeof (int) refere -se ao tamanho total da matriz e a comparação é usada para comparar elementos de matriz um por um. Em seguida, imprima a matriz classificada usando printf () função em c.
Saída
Conclusão
Qsort é uma função poderosa na programação C para classificar matrizes de qualquer tipo. Ele usa um algoritmo Quicksort para classificar os elementos em ordem ascendente ou descendente com base em uma função de comparação. O guia acima mostra uma maneira fácil de implementar o QSORT na programação C com um funcionamento passo a passo de Qsort algoritmo.