数据结构和算法第一章

数据结构与算法分析


第0章 学习提要

第0-1节 章节结构

  1. 离散数学和递归复习资料
  2. 处理算法分析
  3. 表 栈 队列
  4. 散列表
  5. 优先队列
  6. 排序
  7. 不相交集算法
  8. 图论算法
  9. 一般的问题求解技巧和算法设计
  10. 摊还分析
  11. 查找树算法 k-d树 和配对堆

第1章 引论

问题1

选择问题:

设有一组N个数而要确定其中第k个最大者。

分析:

  • 读入一个数组排序,返回第k个
  • 申请一个k数量的大小的数组,以此插入

问题:

  • 含有一百万个元素的随机文件 k = 50 0000时

问题2

字谜问题:

二维数组

1234
1this
2wats
3oahg
4fgdt

找出任意方向任意长度的单词
如:this that fat two

分析:

  • 对每个单词表中的单词 检查所有三元组(行 列 方向 –)
  • 对每个四元组(行 列 方向 单词长度)在单词表中进行搜索。

问题:

  • 大规模数据的搜索

数学知识复习

  1. 指数

    • X^A * X^B = X ^ (A+B)
    • X^A / X^B = X ^ (A-B)
    • (X^A)^B = X^( A*B )
  2. 对数

    • 定义X^A = B,当且仅当logx B = A
    • loga B = (logc B)/(logc A); C>0;
      证明:
      【令X=logc B Y=logc A,Z=loga B,】
      【则C^X = B C^Y = A A^Z = B】
      【(C^Y)^Z = C^x = B 故X=YZ 可得 Z = X/Y】

    • logAB = log A + log B
      证明:
      【令 i^X = A*B i^Y=A i^Z=B 】
      【从而 i ^ X =A * B = i^Y * i^Z = i ^ (Y+Z)】
      【则 Y+Z = X 】

    • log A/B = logA - logB
      证明:
      【令 i^X = A/B i^Y=A i^Z=B 】
      【从而 i ^ X =A / B = i^Y / i^Z = i ^ (Y-Z)】
      【则 Y-Z = X】

    • log(A^B) = B log A
      证明:
      【令 c ^ X = A^B , c ^ Y = A】
      【从而 c ^ X = c^Y^B = C^(Y*B) 】
      【故 X = B * Y】

    • logX < X(x>0)

    • log1 = 0 log1024 = 10 log 1048576=20
  3. 级数

    • 1+2+4+8+…+2^n = 2^(n+1) - 1;
    • 1+A+A^2+…+A^n = ( A^(n+1) - 1 )/( A-1 )
    • 若上式0

递归简论

  • 基准情形
  • 不断推进
  • 设计法则
  • 合成效益法则

    1. 打印问题:打印正整数(如 76234),提供方法Print(4);
    2. 分析:Printr if ( N>9 ) Printr(N/10) Print( N%10 );
    3. 归纳法证明递归程序正确(略)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值