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

#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;
}

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

  agorithm1 agorithm2 agorithm3 agorithm4 agorithm5 agorithm6
Order of Magnitudes T(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.695 0.83 0.847 0.87 12.213 1.748
Estimate Time(G) 100 10000 1000000 10000 10000000000 100000000
T/G rate 0.00695 0.000083 0.000000847 0.000087 0.0000000012213 0.00000001748
Running Time(T) 0.803 0.91 14.882 1.022 120000 985.2
Estimate Time(G) 1000 1000000 1000000000 1000000 1E+15 1E+12
T/G rate 0.000803 0.00000091 0.000000014882 0.000001022 0.00000000012 0.0000000009852

算法分析--数量级比较相关推荐

  1. 算法分析(1)-增长数量级分类总结

    算法分析(1) 1.总结,后面的解释其实可以不看 2 常见数量级的补充解释 (1)常数级别 (2)对数级别 (3)线性级别和线性对数级别 (4)平方级以及立方级别 (5)指数级别 3 综述 1.总结, ...

  2. python高斯求和_二、算法分析

    一.什么是算法分析 程序和算法的区别: 算法是对问题解决的分步描述 程序是采用某种编程语言实现的算法,同一个算法通过不同的程序员采用不同的编程语言,能产生很多程序 算法分析的概念: 算法分析主要就是从 ...

  3. 复杂性思维中文第二版 附录 A、算法分析

    附录 A.算法分析 原文:Appendix A Analysis of algorithms 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了<Think Pyt ...

  4. 『算法』读书笔记 1.4算法分析 Part1

    Chapter 1 本章结构 1.1Java语法 1.2数据抽象 1.3集合类抽象数据类型:背包 (Bags) .队列 (Queues) .栈 (Stacks) 1.4算法分析 1.5连通性问题-Ca ...

  5. Python数据结构与算法(1.7)——算法分析

    Python数据结构与算法(1.7)--算法分析 0. 学习目标 1. 算法的设计要求 1.1 算法评价的标准 1.2 算法选择的原则 2. 算法效率分析 2.1 大 OOO 表示法 2.2 常见算法 ...

  6. 算法分析一:基础知识

    1. 主要概念 1.1 算法概念 1.1.1 算法的理解 定义:在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程,通俗说,算法指解决问题的方法或过程. 三要素:算法由操作.控制结构.数据结 ...

  7. 算法分析----基础知识点

    1.算法分析主要分析什么? 时间复杂度和空间复杂度?? 2.算法分析的目的是什么? 分析算法占用计算机资源的情况,对算法做出比较和评价,设计出更好的算法. 3.算法的时间复杂度与问题的什么因素相关? ...

  8. 1算法分析——数据结构与算法Python版学习笔记

    什么是算法分析? 计算资源指标:一种是算法解决问题过程中需要的储存空间或内存,另一种是算法的执行时间 运行时间检测 time模块,获取计算机系统当前时间 例如: 方法一:累计求和程序的运行时间检测 i ...

  9. 分治法的计算时间、时间复杂度推导以及经典算法分析

    分治是一种解决复杂问题的思想,它可以将一个问题划分成多个小的问题,通过合并这些问题求得原问题的解.本文对分治法进行复杂性分析,并通过这种方法分析几个具体算法的时间复杂度. 文章目录 1 分治法的复杂性 ...

最新文章

  1. 关于地图中轨迹的平滑移动的实现
  2. 32位数据源中没有mysql_如何在.NET中连接到MySQL数据库
  3. C语言 · 贪心算法
  4. 【Python】这款拓展让你的jupyter lab使用更高效
  5. java static方法
  6. linux-分区与硬盘-实战:添加新硬盘
  7. python函数库 阶跃 信号函数 调用_有没有大神知道 step2 阶跃响应函数的 里面的T的怎么定义...
  8. java连接mysql实现增删改查_JDBC之Java连接mysql实现增删改查
  9. 请求方报超时,服务日志中记录的时间却少有超时
  10. LeetCode 47. Permutations II
  11. 程序员斗图时最爱用哪些表情包?拿走不谢!
  12. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_20-CMS前端页面查询开发-页面原型-页面内容完善...
  13. 图像与矩阵_Python_No.3
  14. 零基础如何入门数据分析师?
  15. mybatis 链接DB2查询报错,必需的字符转换器不可用。 ERRORCODE=-4220, SQLSTATE=null
  16. 嵌入式--Flash操作中的标准SPI,Dual SPI,Quad SPI
  17. 2022年免费企业邮箱大全,用免费邮箱发邮件安全吗?
  18. 敏捷开发中,团队成员认领的是任务还是用户故事?
  19. TW6869 drivers porting for freescaleandroid
  20. 端云协同,打造更易用的AI计算平台

热门文章

  1. mysql basic_MySQL Basic Learning (二)
  2. 根据用户查进程_Linux中的系统进程管理
  3. egg框架访问 Mysql 数据库 egg-mysql 增删改查
  4. 小米无缝切换60hz/90hz/120hz/144hz刷新率!
  5. leetcode 最长回文子串
  6. 响应式滑动菜单_如何创建响应式滑动菜单
  7. git 初始化git存储库_什么不保存到Git存储库中
  8. heroku服务器_如何在Heroku上使用Express服务器部署React应用
  9. postman电脑版无法安装_CPU使用率高达100%?试试安装Win10 2004版,旧电脑也能运行如飞...
  10. 利用Python来玩扫雷,极致的思维体验