利用 Python 浅尝算法分析

本文介绍了算法分析的基础,探讨了时间复杂度和大O表示法。时间复杂度用于评估算法效率,关注CPU使用,常用大O表示法简化描述算法随数据规模增长的行为。文章通过实例解释了常数阶、线性阶和平方阶的时间复杂度,并对比了常见时间复杂度级别。
摘要由CSDN通过智能技术生成

引言

学习编程的人或许都听说过,程序 = 数据结构 + 算法 .数据是程序的中心,算法是解决问题的步骤,数据结构和算法两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系.没有数据间的有机关系,程序根本无法设计。数据结构是底层,算法是上层。数据结构为算法提供服务,算法围绕数据结构进行操作

这些概念较为抽象,我们浅尝辄止,本文只介绍一些简单的理论,我们平时练习的程序可能运算规模和数据规模都很小每次运行都能很快得出结果,可以说是秒出.因为现在计算机技术的快速发展,就算是个人计算机一样有这非常可观的算力.但是这并不能改变运行程序时消耗资源的事实.

在实际的开发中,无论是设计还是应用一种算法,我们都要了解这种算法的性能如何,通常我们在衡量一个算法的性能时关心的是对 CPU 和内存的使用率,但是 CPU 是计算机中最为珍贵的资源,我们还是以 CPU 的使用率为主,它体现在算法上就是算法的运算速度,用一个专业的描述就是算法的时间复杂度.相应,如果要计算的是程序运行需要的空间需要考虑的就是空间复杂度.作为上层的使用者我们更关心是时间复杂度,时间越快越好,但是资源开销的成本来看,我们会平衡时间和空间进行取舍.

什么是时间复杂度

不同机器运算速度不一样,我们如何统一衡量一个算法的执行时间呢?计算机科学家们想到,可以用计算步骤来称量。我们所说的算法时间复杂度一般就是指解决问题所执行的语句频数.即算法从开始执行到执行完毕所需要的步骤数量。说通俗点,就是计算程序运行步骤次数的最高阶.由于并不是每个算法都能上机测试,而且现实中也没有太大的必要,我们一般需要分析得出大致计算所需要的资源,才会上机,而不是盲目上机测试.说白了.我们使用算法中语句的执行次数对算法进行估算,哪个算法中语句执行次数多,它花费的时间就多,同时我们通常将算法中的语句执行次数称为时间频度,记为 T(n),n 表示的是语句的规模

什么是大 O 表示法

有了 T(n)之后,还有一个问题就是我们不知道随着处理数据的的增长他的变化会呈现出什么规律,因此引入辅助函数 f(n)的概念,他和 T(

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值