我也只是在某本书上看到了就浅浅拿C语言做个测试计算机的运行速度

 

计算机的运算速度取决于CPU的配置

                                                      1GHz = 1000MHz

                                                      1MHz=1 000 000 Hz

计算机上每个程序都在运算,算法是提高程序的效率

程序的性能分析有2个维度:1.时间复杂度

                                           2.空间复杂度

实现3个函数,时间复杂度分别是:O(n),O(n^2),O(nlogn)

#include <stdio.h>
#include <time.h>


// O(n)
void function1(long long n) {
    long long k = 0;
    for (long long i = 0; i < n; i++) {
        k++;
    }
}


// o(n^2)
void function2(long long n) {
    long long k = 0;
    for (long long i = 0; i < n; i++) {
        for (long long j = 0; j < n; j++) {
            k++;
        }
    }
}

// O(nlogn)
void function3(long long n) {
    long long k = 0;
    for (long long i = 0; i < n; i++) {
        for (long long j = 1; j < n; j *= 2) {
            k++;
        }
    }
}



int main() {
    long long n;
    while (1) {
        printf("请输入n: ");
        scanf("%lld", &n);
        
        clock_t start_time = clock();
//要测试哪个就把哪个前面注释删掉
        function1(n);
        //function2(n);
        //function3(n);
        
        clock_t end_time = clock();
        printf("耗时: %lu ms\n", (end_time - start_time) * 1000 / CLOCKS_PER_SEC);
    }
    return 0;
}

 

就看个乐吧!

 

分别运行如下

10000000

 

O(n^2)

也许我CPU不是很好所以运算半天只能用数小的来测试

100000

最后一个