unit2 算法algorithm

本文探讨了数据结构与算法的基本概念,包括它们之间的关系,算法的定义、特性、设计要求,以及效率度量方法如时间复杂度和空间复杂度。重点讲解了大O计数法和最坏/平均情况分析,强调算法的正确性、可读性和健壮性。
摘要由CSDN通过智能技术生成

1.数据结构与算法的关系

数据结构:相互之间存在一种或多种特定关系的数据元素的集合

算法:解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,每条指令表示一个或多个操作。

应用程序=数据结构+算法

2.算法的定义

算法:解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,每条指令表示一个或多个操作。

3.算法的特性

算法有五个基本特性:

1.输入 :算法具有零个或者多个输入

2.输出 :算法至少有一个或多个输出

3.有穷性:执行有限步骤后自动结束,不会出现死循环,并且每个步骤在可接受时间内完成

4.确定性:每个步骤都具有确定的含义,不会出现二义性

5.可行性:每个步骤都是可行的,每一步都能通过执行有限次数完成

4.算法设计的要求

1.正确性:输入输出和加工处理无歧义性,能正确反映问题的需求,并得到问题的正确答案。

无语法错误、可以接受合法和不合法的输入和精选刁难的测试数据。

2.可读性:算法设计的另一目的是为了便于阅读、理解和交流。

3.健壮性:当输入的数据不合法时,算法能够做出相应处理,而不是产生异常或莫名奇妙的结果。

4.时间效率高和存储量低:用最少的存储空间,花最少的时间,办成同样的事情就是好算法。

5.算法效率的度量方法

1.事后统计法

2.事前分析估算法

6.函数渐进增长

当操作数越来越大时,算法在在执行效率上的差异越来越大。

7.算法的时间复杂度和空间复杂度

程序运行所花费的时间

程序运行所占用的存储空间

大O计算法来表示时间复杂度

随着问题规模N的增大,算法执行时间的增长率和F(N) 的增长率相同,称作算法渐进时间复杂度。

推导大O计数法

1.用常数1代替运行时间中左右的加法常数
2.修改后的运行次数中只保留最高阶项
3.最高阶项系数不是1,就除以这个相乘的系数。

大O阶数

1.常数阶O(1)

2.线性阶O(n)

3.对数阶O(logn)

4.平方阶O(n*n)

8.最坏情况和平均情况

平均运行时间是所有情况中最有意义的。

没有特殊说明的情况下,大O计数法都是指最坏情况的时间复杂度。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值