python数据结构和算法【总结】

本文探讨了算法的五大特性,强调了时间复杂度在衡量算法优劣中的作用,介绍了大O记法。同时,解释了数据结构的重要性,特别是Python中的顺序表,包括一体式和分离式结构,讨论了动态顺序表的存储区替换与扩充策略,以及Python列表的实现技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一。什么是算法

算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。

通俗的来讲,算法就是你解决问题的思路。

二。算法的五大特性

  1. 输入: 算法具有0个或多个输入
  2. 输出: 算法至少有1个或多个输出
  3. 有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
  4. 确定性:算法中的每一步都有确定的含义,不会出现二义性
  5. 可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成

三。时间复杂度

我们可以通过算法的执行来判断算法的优劣。但这个执行时间本身又收到程序执行环境(硬件)的影响。有没有什么可以客观的衡量算法的优劣呢?  ----------时间复杂度

我们假定计算机执行算法每一个基本操作的时间是固定的一个时间单位,那么有多少个基本操作就代表会花费多少时间单位。

每台机器执行的总时间不同,但同一算法执行的步骤数量在每台机器上是相同的。

时间复杂度可以用步骤的数量来表示,从而来表示算法的优劣

在计算时间复杂度时注意:  N 问题的规模    走势的影响    数量级

                 - 算法的速度并非指时间,不是以秒为单位;而是操作数的增速。从增量的角度度量的。

                 - 平时说的算法的速度,指的是随着输入的增加,其运行时间将会以什么样的速度进行增加。

---------------------------------------------------------------------------------------------------

“大O记法”:对于单调的整数函数f,如果存在一个整数函数g和实常数c>0,使得对于充分大的n总有f(n)<=c*g(n),就说函数g是f的一个渐近函数(忽略常数),记为f(n)=O(g(n))。也就是说,在趋向无穷的极限意义下,函数f的增长速度受到函数g的约束,亦即函数f与函数g的特征相似。

时间复杂度:假设存在函数g,使得算法A处理规模为n的问题示例所用时间为T(n)=O(g(n)),则称O(g(n))为算法A的渐近时间复杂度,简称时间复杂度,记为T(n)

---------------------------------------------------------------------------------------------------------

  • 时间
数据结构算法Python) 一、引入概念 1-01算法引入 1-02 时间复杂度大O表示法 1-03-最坏时间复杂度计算规则 1-04-常见时间复杂度大小关系 1-05-代码执行时间测量模块 1-06-Python列表类型不同操作的时间效率 1-07-Python列表字典操作的时间复杂度 1-08-数据结构引入 二、顺序表 2-01 内存、类型本质、连续存储 recv 2-02 基本顺序表元素外围顺序表 recv 2-03 顺序表的一体式结构分离式结构 recv 2-04 顺序表数据区替换扩充 recv 三、栈 3-01 栈队列的概念 3-02 栈的实现 3-03 队列双端队列的实现 四、链表 4-01 链表的提出 4-02 单链表的ADT模型 4-03 Python中变量标识的本质 4-04 单链表及结点的定义代码 4-05 单链表的判空、长度、遍历尾部添加结点的代码实现 4-06 单链表尾部添加在指定位置添加 4-07 单链表查找删除元素 4-08 单链表顺序表的对比 4-09 单向循环链表遍历求长度 4-10 单向循环链表添加元素 4-11 单向循环链表删除元素 4-12 单向循环链表删除元素复习及链表扩展 4-13 双向链表及添加元素 4-14 双向链表删除元素 五、排序搜索 5-01 排序算法的稳定性 5-02 冒泡排序及实现 5-03 选择排序算法及实现 5-04 插入算法 5-05 插入排序 5-06 插入排序2 5-07 希尔排序 5-08 希尔排序实现 5-09 快速排序 5-10 快速排序实现1 (1) 5-10 快速排序实现1 5-11 快速排序实现2 5-12 归并排序 5-13 归并排序 代码执行流程 5-14 归并排序时间复杂度及排序算法复杂度对比 5-15 二分查找 5-16 二分查找时间复杂度 六、树树的算法 6-01 树的概念 6-02 二叉树的概念 6-03 二叉树的广度优先遍历 6-04 二叉树的实现 6-05 二叉树的先序、中序、后序遍历 6-06 二叉树由遍历确定一棵树 ———————————————— 权声明:本文为优快云博主「dwf1354046363」的原创文章,遵循CC 4.0 BY-SA权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/dwf1354046363/article/details/119832814
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值