Algothrim Design note 2

算法分析基础


1. 何为效率

效率(Efficiency):

1. 当实现一个算法时,如果它在真实的输入实例上运行得更快,那么这个算法是有效的。

2. 在分析的层次上,如果一个算法与蛮力搜索比较,最坏情况下达到质量上更好的性能,它就是有效的

3. 如果一个算法有多项式运行时间,它就是有效的。 


2. 渐进阶的增长顺序

渐进上界:upper bounds O(f(n))  渐进下界:lower bounds \Omega(f(n))  渐进紧界:运行时间T(n)既是渐进上界又是渐进下界 \Theta ( f ( n ) )

性质:

1. 传递性

2. 可加性 


3. 运行时间概述

(1)线性时间O(n): 对于输入的  处理仅进行一轮

  e.g. 计算最大数   

max = ai
for i=2 to n
    if ai > max then
        max = ai
    Endif
Endfor

 归并排序好的表

归并排序好的表 A=a1,a2,···,an; B=b1,b2,···,bn:
    在每个表中维护一个current指针,初始指向首元素
    While 两个表非空时:
        设ai和bi为Current指针指向的元素
        将这两个元素中较小的元素加到输出表中
        在最小元素被选中的表中向前移动Current指针
    EndWhile

哈希映射、计数排序等 

(2) O(nlogn) 算法将输入分成相同的两块递归对每块进行求解,然后用线性时间组合起来

e.g. 归并排序: 归并排序和堆排序

      最大空间隔: 给定n个时间戳x1,x2,···,xn, 文件的副本到达服务器, 没有文件到达的最大时间间隔。

                             对时间戳进行排序,顺序扫描已排序列表,确定连续连续时间戳最大间隔。

(3)平方时间 O(n2) 枚举所有元素对

e.g. 最近点对欧式距离的蛮力算法

(4)立方时间 更加复杂的嵌套循环,列举所有元素的三元组

e.g. 不相交点集(没有共同元素)

(5)O(n^k) k大小的独立集 

给定一个图形,是否存在k个节点使得没有边缘连接。

汉诺塔

(6)超出多项式时间

寻找最大规模独立集 O(n^22^n)   稳定匹配的暴力搜索O(n!) 斐波那契数列


补充知识: 优先队列:对于蛮力搜索的改进

一个优先队列是维护元素集合S的一个数据结构,其中每个元素v\in S有一个相关的值key(v),它表示元素v的优先权;

较小的数字代表较高的优先权,但是进程不是按照它们的优先权的进程并且运行它。我们在优先队列维护这个进程,用一个进程的关键字表示它的优先权的值,调度这个最高的优先权的进程对应于从优先队列中选出具有最小关键字的元素。与此同时,我们也在新的进程到达按照它们的优先权将它们插入。

 

实现数据结构:堆 

Algothrim Design

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值