qsort ialah fungsi pengisihan dalam pustaka standard bahasa C, dan prestasinya (iaitu kelajuan ia berjalan) bergantung terutamanya pada bilangan kali ia membandingkan dan menukar elemen. Bilangan perbandingan dan pertukaran elemen bergantung terutamanya pada saiz dan pengedaran tatasusunan input.
Berikut ialah contoh ujian prestasi qsort yang mudah, anda boleh menyalin kod ini dan menjalankannya untuk melihat keputusan:
#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; }
Sila ambil perhatian bahawa ujian ini hanya bertujuan untuk memberikan penunjuk prestasi anggaran dan tidak dijamin berfungsi dalam semua kes boleh mendapat keputusan yang sama. Prestasi sebenar akan dipengaruhi oleh banyak faktor, termasuk prestasi perkakasan, penjadualan sistem pengendalian, corak akses memori, dsb. Jika anda memerlukan ujian prestasi yang lebih tepat, anda mungkin perlu menggunakan alat analisis prestasi khusus seperti gprof, callgrind Valgrind, kcachegrind, dsb.
Atas ialah kandungan terperinci Ujian prestasi algoritma fungsi qsort bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!