Ujian prestasi algoritma fungsi qsort bahasa C

DDD
Lepaskan: 2023-12-07 13:57:43
asal
873 orang telah melayarinya

Ujian prestasi algoritma fungsi qsort bahasa C

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;  
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!