算法分析--数量级比较

来源:互联网 发布:阿里云ddns客户端 编辑:程序博客网 时间:2024/05/01 15:14

一些程序片段的数量级及其所花时间的比较,极大程度的反应了算法优化程度越高,算法越优秀

#include <iostream>using namespace std;__int64 agorithm1(__int64 N)    //第一个数量级为T(N)=O(N){    __int64 sum = 0;    for(__int64 i = 0; i < N; i++)        sum++;    return sum;}__int64 agorithm2(__int64 N)    //第二个数量级T(N)=O(N^2){    __int64 sum = 0;    for(__int64 i = 0; i < N; i++)        for(__int64 j = 0; j < N; j++)            sum++;    return sum;}__int64 agorithm3(__int64 N)    //第三个数量级T(N)=O(N^3){    __int64 sum = 0;    for(__int64 i = 0; i < N; i++)        for(__int64 j = 0; j < N * N; j++)            sum++;    return sum;}__int64 agorithm4(__int64 N)    //第四个数量级T(N)=O(N^2){    __int64 sum = 0;    for(__int64 i = 0; i < N; i++)        for(__int64 j = 0; j < i; j++)            sum++;    return sum;}__int64 agorithm5(__int64 N)    //第五个数量级T(N)=O(N^5){    __int64 sum = 0;    for(__int64 i = 0; i < N; i++)        for(__int64 j = 0; j < i * i; j++)            for(__int64 k = 0; k < j; k++)                sum++;    return sum;}__int64 agorithm6(__int64 N)    //第六个数量级T(N)=O(N^4){    __int64 sum = 0;    for(__int64 i = 1; i < N; i++)        for(__int64 j = 1; j < i * i; j++)            if(j % i == 0)                for(__int64 k = 0; k < j; k++)                    sum++;    return sum;}int main(){    int N = 1000;//PS:注释去掉,选择算法//    cout<<agorithm1(N)<<endl;//    cout<<agorithm2(N)<<endl;//    cout<<agorithm3(N)<<endl;//    cout<<agorithm4(N)<<endl;//    cout<<agorithm5(N)<<endl;//    cout<<agorithm6(N)<<endl;    return 0;}

以下为比较统计出的表格:

 agorithm1agorithm2agorithm3agorithm4agorithm5agorithm6Order of MagnitudesT(N)=O(N)T(N)=O(N^2)T(N)=O(N^3)T(N)=O(N^2)T(N)=O(N^5)T(N)=O(N^4)Running Time(T)0.6950.830.8470.8712.2131.748Estimate Time(G)1001000010000001000010000000000100000000T/G rate0.006950.0000830.0000008470.0000870.00000000122130.00000001748Running Time(T)0.8030.9114.8821.022120000985.2Estimate Time(G)10001000000100000000010000001E+151E+12T/G rate0.0008030.000000910.0000000148820.0000010220.000000000120.0000000009852

0 0
原创粉丝点击