数据结构--网课笔记(一)

绪论

程序不等于算法

算法具有正确性、确定性、可行性、有穷性

好算法的特点:

  • 正确:符合语法,能够编译、链接
  • 健壮:能对不合法的输入做适当处理,而不至于非正常退出
  • 可读:结构化+准确命名+注释
  • 效率:(最重要的)速度尽可能快,存储空间尽可能少

算法的运行时间转换为算法需要执行的基本操作次数

渐进分析:大O记号

T(n)=O(f(n)) iff 存在c>0,当n>>2后,有T(n)<c*f(n)

与T(n)相比,f(n)更为简洁,但依然反应前者的增长趋势

常系数可忽略,低次项可忽略

渐进分析:其他记号

T(n) = Ω(f(n)):

存在c>0,当n>>2后,有T(n)>c*f(n)

T(n) = θ(f(n)):

存在c1>c2>0,当n>>2后,有c1f(n)>T(n)>c2f(n)

算法分析

级数

  • 算数级数:与末项平方同阶。T(n)=1+2+3+…+n=O(n的平方)
  • 幂方级数:比幂次高出一阶。
  • 几何级数:与末项同阶

起泡排序

给定n个整数,按(非降序)排序

扫描交换:依次比较每一对相邻元素,如有必要,交换之,若整趟扫描都没有进行交换,则排序完成,否则再做一次扫描交换

  • 不变性:经k轮扫描交换后,最大的k个元素必然就位
  • 单调性:经k轮扫描交换后,问题规模缩减至n-k
  • 正确性:经至多n轮扫描后,算法必然终止,给出正确解答
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值