python数据结构与算法

数据结构

物理结构

又称存储结构

​ 顺序结构:逻辑结构相邻,物理结构也相邻
​ 链式结构:逻辑相邻,物理不一定相邻

逻辑结构

​ 集合结构:(同属一个整体,但是每个元素之间没有关系)
​ 线性结构:队尾元素没有直接后继,队头元素没有直接前驱
​ 其他元素有唯一的直接前驱和后继(一对一)
​ 树形结构:除了根元素,其他元素都有一个前驱和多个后继(一对多)
​ 图形结构:每个元素都有多个前驱和后继(多对多)

​ 重点:线性结构

  • 如果既是线性结构,又是链式结构,这种结构成为链表
  • 如果既是线性结构,又是顺序结构,这种结构成为顺序表

链表:单向链表 双向链表 单向循环链表

链表和顺序表的区别:
链表插入删除方便,修改查找不方便
顺序表修改和查找方便,插入删除不方便


算法

算法是特定解决问题的方法步骤

算法特性

  • 输入:有零个或多个输入
  • 输出:有一个或多个输出
  • 有穷性:有限的时间或有限的步骤可以结束算法
  • 确定性:每个步骤只有唯一的意思,不会产生歧义
  • 可行性:可用现有的条件可以实现

算法复杂度

  • 时间复杂度:算法运行所需要的时间

用大O表示法
list:pop()删除末尾元素:O(1)
pop(0)删除第一个元素:O(n)
sort()排序:O(nlogn)
insert()插入元素 O(n)
append()末尾添加元素:O(1)
字典:
除了循环 复制 O(n)
删除、添加、修改、查询元素O(1)

  • 空间复杂度:算法运行所需要的空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值