Questa linea guida illustra l'ordinamento degli array utilizzando l' qsort() funzione in C e ti aiuta anche a capirlo con i codici di esempio C.
qsort() in C
La libreria standard C ci facilita con qsort() funzione che viene semplicemente utilizzata per ordinare gli array. È una funzione estremamente ottimizzata e veloce che può operare con qualsiasi tipo di dati array.
File di intestazione usando qsort() in C
IL qsort() metodo è definito all'interno del stdlib.h file di intestazione, che deve essere definito prima dell'implementazione qsort() in un programma C.
#include
Dichiarazione di qsort()
La dichiarazione di qsort() funzione è la seguente:
vuoto qsort ( vuoto * base , numero_di_elementi , size_of_element , funzione_comparativa )
Parametri della funzione qsort()
I parametri del qsort() funzione sono:
base: Puntatore al primo elemento dell'array da ordinare.
numero_di_elementi: Numero di elementi nell'array da ordinare.
size_of_element: Dimensione in byte di ogni elemento nell'array.
funzione_di confronto: Puntatore a una funzione di confronto che definisce l'ordine degli elementi.
Cos'è la funzione di confronto in qsort()
La funzione di confronto accetta due parametri, entrambi di tipo const void*, che puntano agli elementi confrontati. La funzione deve restituire un numero intero minore, uguale o maggiore di 0, a seconda che il primo elemento debba essere ordinato rispettivamente prima, nella stessa posizione o dopo il secondo elemento.
Come funziona qsort in C
IL qsort() funzione funziona nel modo seguente:
Nota: Qui stiamo considerando un int arr[] = {5, 2, 8, 3, 1, 9};
1: Inizialmente, la funzione qsort verrà chiamata con i seguenti parametri:
qsort ( arr , 6 , taglia di ( int ) , funzione_comparativa ) ;dove arr è il puntatore all'array, 6 è il numero di elementi nell'array, sizeof(int) è la dimensione di ogni elemento nell'array e compare_function è la funzione che determina l'ordine in cui gli elementi sono ordinati.
2: La funzione qsort seleziona un elemento pivot. Diciamo che seleziona 3 come perno.
3: La funzione qsort suddivide l'array in due sottoarray: {2, 1} e {5, 8, 9}. Il primo sottoarray contiene elementi minori o uguali al pivot e il secondo sottoarray contiene elementi maggiori del pivot.
4: La funzione qsort richiama se stessa in modo ricorsivo su ciascuno dei sottoarray.
5: La funzione qsort seleziona i pivot per ciascuno dei sottoarray. Diciamo che seleziona 1 e 8 come pivot.
6: La funzione qsort partiziona ciascun sottoarray in altri due sottoarray e si richiama ricorsivamente su ciascuno di questi sottoarray.
7: La funzione qsort combina i sottoarray ordinati in un unico array ordinato: {1, 2} e {5, 8, 9} diventano {1, 2, 5, 8, 9}.
8: Viene restituito l'intero array ordinato.
Implementazione di qsort nella programmazione C
Il codice seguente mostra l'implementazione di qsort funzione nella programmazione C.
#include#include
int confrontare ( cost vuoto * a1 , cost vuoto * b1 )
{
ritorno ( * ( int * ) a1 - * ( int * ) b1 ) ;
}
int principale ( )
{
int io = 0 , nessuno = 6 ;
int vettore [ ] = { 5 , 2 , 8 , 3 , 1 , 9 } ;
qsort ( vettore , nessuno , taglia di ( int ) , confrontare ) ;
printf ( 'Gli elementi ordinati dell'array usando qsort() sono: ' ) ;
per ( io = 0 ; io < nessuno ; io ++ ) {
printf ( '%D ' , vettore [ io ] ) ; }
ritorno 0 ;
}
Nel codice sopra, in primo luogo viene creata una funzione di confronto con due parametri a1 E b1 . Quindi l'esecuzione inizia da main(). In generale, inizializziamo due variabili intere come i=0 e num=6. Quindi dichiariamo un array con sei elementi come {5, 2, 8, 3, 1, 9} . Dopodichè qsort() hanno tre parametri di tipo array, il parametro num indica gli elementi totali di un array, dimensionedi(int) si riferisce alla dimensione totale dell'array e compare viene utilizzato per confrontare gli elementi dell'array uno per uno. Quindi stampare l'array ordinato utilizzando stampaf() funzione in C.
Produzione
Conclusione
qsort è una potente funzione nella programmazione C per l'ordinamento di array di qualsiasi tipo. Utilizza un algoritmo quicksort per ordinare gli elementi in ordine crescente o decrescente in base a una funzione di confronto. La guida sopra mostra un modo semplice per implementare qsort nella programmazione C con un funzionamento passo-passo di qsort algoritmo.