Come ordinare gli array con Qsort in C

Come ordinare gli array con Qsort in C
L'ordinamento è un'operazione fondamentale nella programmazione informatica e comporta l'organizzazione di una raccolta di dati in un ordine specifico. Un modo per ordinare una serie di elementi in C è usare il Qsort () funzione, che fa parte della libreria standard. Questa funzione prende un array, le sue dimensioni e una funzione di confronto come argomenti e ordina l'array in ordine crescente per impostazione predefinita.

Questa linea guida illustra l'ordinamento degli array usando il 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 Qsort () funzione che viene semplicemente utilizzata per ordinare gli array. È una funzione estremamente ottimizzata e veloce che può funzionare con qualsiasi array di tipi di dati.

File intestazione usando qsort () in c

IL Qsort () Il metodo è definito all'interno del stdlib.H file di intestazione, che deve essere definito prima dell'implementazione Qsort () in un programma C.

#includere

Dichiarazione di Qsort ()

La dichiarazione di Qsort () La funzione è la seguente:

void qsort (void *base, numero_of_elements, size_of_element, confronto_function)

Parametri della funzione Qsort ()

I parametri del Qsort () La funzione sono:

base: Puntatore al primo elemento dell'array da risolvere.

NUMBER_OF_ELEMENTS: Numero di elementi nell'array da risolvere.

size_of_element: Dimensione in byte di ciascun elemento nell'array.

confronto_function: Puntatore a una funzione di confronto che definisce l'ordine degli elementi.

Qual è la funzione di confronto in Qsort ()

La funzione di confronto prende due parametri, entrambi di tipo const void*, che indicano gli elementi da confrontare. La funzione dovrebbe restituire un intero inferiore a, uguale o maggiore di 0, a seconda che il primo elemento debba essere ordinato prima, nella stessa posizione o dopo il secondo elemento, rispettivamente.

Come funziona Qsort in C

IL Qsort () La funzione funziona nel modo seguente:

Nota: Qui stiamo prendendo in considerazione un int arr [] = 5, 2, 8, 3, 1, 9;

1: Inizialmente, la funzione QSORT verrà chiamata con i seguenti parametri:

Qsort (arr, 6, sizeof (int), confronto_function);

dove l'arr è il puntatore all'array, 6 è il numero di elementi nell'array, la dimensione di (int) è la dimensione di ciascun elemento nell'array e il confronto_funzione è la funzione che determina l'ordine in cui gli elementi sono ordinati.

2: La funzione Qsort seleziona un elemento per pivot. Diciamo che seleziona 3 come il perno.

3: La funzione Qsort partizioni l'array in due sotto-array: 2, 1 e 5, 8, 9. Il primo sotto-array contiene elementi che sono inferiori o uguali al perno e il secondo sotto-array contiene elementi che sono maggiori del perno.

4: La funzione Qsort si chiama ricorsivamente su ciascuno dei sotto-array.

5: La funzione Qsort seleziona i perni per ciascuno dei sotto-array. Diciamo che seleziona 1 e 8 come perni.

6: La funzione Qsort suddivide ogni sotto-array in altri due sotto-array e si chiama ricorsivamente su ciascuno di questi sotto-array.

7: La funzione Qsort combina i sotto-array ordinati in un singolo array ordinato: 1, 2 e 5, 8, 9 diventano 1, 2, 5, 8, 9.

8: L'intero array ordinato viene restituito.

Implementazione di QSORT nella programmazione C

Il seguente codice mostra l'implementazione di Qsort funzione nella programmazione C.

#includere
#includere
int confront (const void * a1, const void * b1)

return ( *(int *) a1 - *(int *) b1);

int main ()

int i = 0, num = 6;
int array [] = 5, 2, 8, 3, 1, 9;
Qsort (array, num, sizeof (int), confronta);
printf ("Elementi ordinati dell'array usando qsort () sono:");
per (i = 0; i < num; i++)
printf ("%d", array [i]);
restituzione 0;

Nel codice sopra, in primo luogo viene eseguita una funzione di confronto con due parametri A1 E B1. Quindi l'esecuzione inizia da main (). Nella principale, inizializziamo due variabili interi come i = 0 e num = 6. Quindi dichiariamo un array con sei elementi come 5, 2, 8, 3, 1, 9. Dopodichè Qsort () Avere tre parametri di tipo di array, il parametro NUM indica gli elementi totali di un array, sizeof (int) si riferisce alla dimensione totale dell'array e il confronto viene utilizzato per confrontare gli elementi dell'array uno per uno. Quindi stampare l'array ordinato usando printf () 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 discendente in base a una funzione di confronto. La guida sopra mostra un modo semplice per implementare QSORT nella programmazione C con un lavoro passo-passo di Qsort algoritmo.