Comment trier les tableaux avec QSort en C

Comment trier les tableaux avec QSort en C
Le tri est une opération fondamentale dans la programmation informatique, et elle implique d'organiser une collection de données dans un ordre spécifique. Une façon de trier un tableau d'éléments en C est d'utiliser le QSORT () fonction, qui fait partie de la bibliothèque standard. Cette fonction prend un tableau, sa taille et une fonction de comparaison comme des arguments et trie le tableau par ordre croissant par défaut.

Cette directive illustre le tri des tableaux en utilisant le QSORT () fonction en c et vous aide également à le comprendre par C.

qsort () en c

C La bibliothèque standard nous facilite avec QSORT () fonction qui est simplement utilisée pour trier les tableaux. Il s'agit d'une fonction extrêmement optimisée et rapide qui peut fonctionner avec n'importe quel tableau de type de données.

En-tête-fichier en utilisant qsort () en c

Le QSORT () la méthode est définie à l'intérieur du stdlib.H Fichier d'en-tête, qui doit être défini avant la mise en œuvre QSORT () Dans un programme C.

#inclure

Déclaration de QSort ()

La déclaration de QSORT () La fonction est la suivante:

void qsort (void * base, numéro_of_elements, size_of_element, comparaison_function)

Paramètres de la fonction QSORT ()

Les paramètres du QSORT () La fonction est:

base: Pointeur vers le premier élément du tableau à tri.

numéro_of_elements: Nombre d'éléments dans le tableau à tri.

size_of_element: Taille en octets de chaque élément du tableau.

comparaison_function: Pointer vers une fonction de comparaison qui définit l'ordre des éléments.

Quelle est la fonction de comparaison dans QSORT ()

La fonction de comparaison prend deux paramètres, tous deux de type const void *, qui pointent vers les éléments comparés. La fonction doit renvoyer un entier inférieur, égal à ou supérieur à 0, selon que le premier élément doit être trié avant, à la même position ou après le deuxième élément, respectivement.

Comment QSORT fonctionne en C

Le QSORT () La fonction fonctionne de la manière suivante:

Note: Ici nous envisageons un int arr [] = 5, 2, 8, 3, 1, 9;

1: Initialement, la fonction QSORT sera appelée avec les paramètres suivants:

QSORT (arr, 6, sizeof (int), comparaison_function);

Lorsque Arr est le pointeur vers le tableau, 6 est le nombre d'éléments dans le tableau, la taille (int) est la taille de chaque élément dans le tableau, et comparaison_function est la fonction qui détermine l'ordre dans lequel les éléments sont triés.

2: La fonction QSORT sélectionne un élément pivot. Disons qu'il sélectionne 3 Comme le pivot.

3: La fonction QSORT partitionne le tableau en deux sous-arrayons: 2, 1 et 5, 8, 9. Le premier sous-array contient des éléments inférieurs ou égaux au pivot, et le deuxième sous-tableau contient des éléments supérieurs au pivot.

4: La fonction QSORT s'appelle récursivement sur chacun des sous-arrayons.

5: La fonction QSORT sélectionne des pivots pour chacun des sous-arraies. Disons qu'il sélectionne 1 et 8 comme pivots.

6: La fonction QSORT partage chacune des sous-tableaux en deux autres sous-terrains et s'appelle récursivement chacun de ces sous-terrains.

7: La fonction QSORT combine les sous-terrains triés dans un seul tableau trié: 1, 2 et 5, 8, 9 devenir 1, 2, 5, 8, 9.

8: L'ensemble du tableau trié est retourné.

Implémentation de QSORT dans la programmation C

Le code suivant montre l'implémentation de QSORT fonction dans la programmation C.

#inclure
#inclure
int compare (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), comparer);
printf ("Les éléments triés du tableau à l'aide de qsort () sont:");
pour (i = 0; i < num; i++)
printf ("% d", array [i]);
retour 0;

Dans le code ci-dessus, une fonction de comparaison est d'abord faite avec deux paramètres A1 et b1. Ensuite, l'exécution commence à partir de main (). Dans l'ensemble, nous initialisons deux variables entières comme i = 0 et num = 6. Ensuite, nous déclarons un tableau avec six éléments comme 5, 2, 8, 3, 1, 9. Après ça QSORT () ont trois paramètres de type de tableau, le paramètre num indique les éléments totaux d'un tableau, Sizeof (int) fait référence à la taille totale du tableau et comparer est utilisé pour comparer les éléments du tableau un par un. Puis imprimez le tableau trié en utilisant printf () fonction en c.

Sortir

Conclusion

QSORT est une fonction puissante dans la programmation C pour le tri des tableaux de tout type. Il utilise un algorithme Quicksort pour trier les éléments dans l'ordre croissant ou décroissant basé sur une fonction de comparaison. Le guide ci-dessus vous montre un moyen facile d'implémenter QSORT dans la programmation C avec un travail étape par étape de QSORT algorithme.