Maison  >  Article  >  développement back-end  >  Test de performance de l'algorithme de fonction qsort en langage C

Test de performance de l'algorithme de fonction qsort en langage C

DDD
DDDoriginal
2023-12-07 13:57:43883parcourir

Test de performance de l'algorithme de fonction qsort en langage C

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn