数据结构学习笔记01

本文探讨了数据结构课程中的核心概念,包括计算模型如图灵机与RAM,以及算法复杂度分析。介绍了大O、大Omega和θ记号的概念,并讨论了不同复杂度级别的算法。此外,还涉及迭代与递归、动态规划等算法设计技巧。

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

看邓俊辉老师的数据结构课程的笔记

一,计算

  • hailstone(是否有穷尚无定论) 好算法——最强调“效率”,其次是可读性,健壮性,正确性

二,计算模型

1.图灵机(不懂怎样作为一个计算模型来使用)

  • tape(均匀划分为单元格)
  • 有限的alphabet
  • head
  • state
  • transition function(q,c;d,L/R,p)

2.RAM(没听懂)

三,渐进复杂度

  • 看主流和长远
  • 大O记号:上界
  • 大Omega记号:下界
  • θ记号:以上二者之间

高效解:

  • 常数 O(1)
  • 对数 O(logcn)

有效解:

  • 多项式 O(nc ): 特殊 线性O(n)
  • 幂次的复杂度组足够令人满意!

难解(不存在有效算法)

  • 指数复杂度 O(2n)
  • 例如 2-subset 问题,无法改进成一个多项式复杂度的算法

四,复杂度分析

  • 级数(这个没太明白)
  • 封底估算

五,迭代与递归

  • 减而治之(例如sum)
  • 复杂度分析:递归跟踪分析,检查每个递归,累计相加的时间;递推方程分析
  • 分而治之(二分求和)

六,动态规划

  • 递归是自顶向下的,而迭代是自底向上的。
  • 数组循环移位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__心似大海__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值