La fonction qsort est une fonction de bibliothèque en langage C utilisée pour trier les tableaux. Bien que la fonction qsort soit très générale et puisse gérer tout type de tableau, la fonction de comparaison peut devenir complexe, notamment lorsqu'il s'agit de structures de données complexes.
La fonction qsort est une fonction de bibliothèque en langage C qui permet de trier les tableaux. Il est défini dans le fichier d'en-tête
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*));
Voici la description des paramètres de la fonction qsort :
base : Un pointeur vers le premier objet du tableau à trier.
nitems : Le nombre d'éléments dans le tableau.
size : La taille de chaque élément, généralement obtenue à l'aide de l'opérateur sizeof.
compar : Une fonction de comparaison utilisée pour déterminer l'ordre de deux éléments. Cette fonction doit accepter deux pointeurs, pointant vers les éléments à comparer, et renvoyer un nombre négatif si le premier élément est inférieur au second, 0 s'ils sont égaux et un nombre positif si le premier élément est supérieur au second.
Voici un exemple d'utilisation de la fonction qsort, qui trie un tableau d'entiers :
#include <stdio.h> #include <stdlib.h> // 比较函数,用于决定排序 int compare(const void *a, const void *b) { int int_a = *((int*) a); int int_b = *((int*) b); if (int_a == int_b) return 0; else if (int_a < int_b) return -1; else return 1; } int main() { int i; int numbers[] = {7, 3, 4, 1, -1, 23, 12, 43, -8, 5}; int size = sizeof(numbers) / sizeof(int); // 对数组进行排序 qsort(numbers, size, sizeof(int), compare); // 输出排序后的数组 for(i = 0; i < size; i++) { printf("%d ", numbers[i]); } return 0; }
Remarque : Bien que la fonction qsort soit très polyvalente et puisse gérer tout type de tableau, ses fonctions de comparaison peuvent devenir complexes, surtout lorsque vous avez affaire à des structures de données complexes. Lorsque vous écrivez une fonction de comparaison, assurez-vous qu'elle fonctionne comme prévu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!