算法——Python版本

本文探讨了Python中的算法概念,强调其五大特性,包括输入、有穷性、确定性、可行性及时间复杂度。深入解析时间复杂度的意义,讨论了如何评估算法效率并介绍了抽象数据类型(ADT)。讲解了常见的时间复杂度函数,并重点突出了数据操作如插入、删除等在ADT中的运用。
摘要由CSDN通过智能技术生成

20201215

算法与数据结构——Python版本

算法的概念:告诉计算机确切的偶来执行一个指定的任务(独立存在(与语言无关)的解决问题的方法与思想)

算法的五大特性

1、输入:大于等于0
2、输入:必须要有一个(解决的问题的答案)
3、有穷性:算法在有限的步骤自动结束不会无限的循环,每一步可以在可接受的范围内
4、确定性:算法的每一个都有具体的含义,不会出现二义性
5、可行性:可以用计算机的语言进行表达

时间复杂度

问题:为什么要引入时间复杂度?

单看时间的话不准确,离不开计算机环境对其的影响

时间复杂度:基本步骤的执行数量,大致评估时间复杂度的数量级,是基本执行步骤数量的渐进函数
渐进函数:g(n)其实是f(n)的渐进函数,在趋向无穷的极限意义下,函数f的增长速度小收到了g函数的约束,使得两者之间的特征相同 f(n)<=c*g(n),c是常数

相对应的还有空间复杂度

问题:对于同样的算法,由于数据的不同,具体的执行步骤不一致。有理想状态和最坏的状态,如何剔除数据不同导致的复杂度上的变化?
提出了三个概念
最坏执行的时间:提供了一种最坏的保障
最优执行的时间:价值不大,最优情况下一般难以出现
平均时间复杂度:处理问题规模的平均状态

常见的时间复杂度函数

在这里插入图片描述
在这里插入图片描述

需要背的
O(1)<o(logn)<o(n)<o(nlogn)<o(n2)<o(n2logn)<o(n3) <o(2n) <o(n!) <o(nn)

抽象数据类型(ADT)

即把数据类型和数据类型上的运算捆在一起,进行封装。引入抽象数据类型的目的是把数据类型的表示和数据类型上运算的实现与这些数据类型和运算在程序中的引用隔开,使它们相互独立。

最常用的数据运算有五种:

插入
删除
修改
查找
排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值