qsort est une fonction de tri de la bibliothèque standard du langage C, et ses performances (c'est-à-dire la vitesse à laquelle elle s'exécute) dépendent principalement du nombre de fois qu'elle compare et échange des éléments. Le nombre de comparaisons et d'échanges d'éléments dépend principalement de la taille et de la distribution du tableau d'entrée.
Ce qui suit est un exemple de test de performance qsort simple, vous pouvez copier ce code et l'exécuter pour voir les résultats :
#include <stdio.h> #include <stdlib.h> #include <time.h> // 定义一个比较函数,用于 qsort int compare(const void* a, const void* b) { return (*(int*)a - *(int*)b); } int main() { // 生成一个随机数组 srand(time(0)); int n = 1000000; // 数组大小,你可以根据需要调整这个数值 int* arr = (int*)malloc(n * sizeof(int)); for(int i = 0; i < n; i++) { arr[i] = rand(); } // 记录开始时间 clock_t start = clock(); // 使用 qsort 对数组进行排序 qsort(arr, n, sizeof(int), compare); // 记录结束时间 clock_t end = clock(); // 输出运行时间(以毫秒为单位) printf("Sorting %d elements took %f milliseconds\n", n, ((double)end - start) * 1000 / CLOCKS_PER_SEC); // 释放内存 free(arr); return 0; }
Veuillez noter que ce test est uniquement destiné à fournir un indicateur de performance approximatif et son fonctionnement n'est pas garanti. dans tous les cas, on peut obtenir les mêmes résultats. Les performances réelles seront affectées par de nombreux facteurs, notamment les performances du matériel, la planification du système d'exploitation, les modèles d'accès à la mémoire, etc. Si vous avez besoin de tests de performances plus précis, vous devrez peut-être utiliser des outils d'analyse de performances spécialisés tels que gprof, callgrind de Valgrind, kcachegrind, etc.
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!