1数据结构的分类,算法效率的度量

一,数据结构的定义和分类

数据结构:数据之间的关系即数据的逻辑结构,因为要存储到计算机里,所以视为将这个数据的逻辑结构映射到存储器里。即数据因为自身的和其他的数据的关系而在计算机内存储的方式。我们就归类了一些类型。

二,算法的定义和效率度量

算法:数据之间要运算,不同的数据结构也有更适合自己的算法,题目中也不会说告诉你要怎么存储使用数据,需要自己辨别,并在多个算法中根据算法效率的度量(两个),选择最优的算法。

算法效率的度量:

1.时间复杂度T(n)=O(f(n))

1>怎么算:

①只看语句重复最多次的那个语句称为基本语句,比如如果是多层嵌套则最深层的嵌套即基本语句

②多层嵌套可以借助数学公式求和

③找出执行次数k与n的关系,表示为k=g(n),即O(k)=O(g(n))为所求

④运用加法法则和乘法法则:可以分成几个可以估算的部分

⑤忽略低次幂项(即忽略不是最大执行频率的语句)和最高次幂系数(即常数不要)

2>时间复杂度的分类:选平均和最坏居多,默认最坏,以保证算法的运行时间不比它长

例:用顺序查找在n个元素数组中找key,最好:1次即1;最坏:n次即n;平均:O(n/2)=O(n)

3>算法时间效率的比较(用图像记)

O(log2n)可以直接写成O(logn),这种对数的其实下角标不重要

2.空间复杂度S(n)=O(f(n))

空间复杂度是算法所需存储空间的度量,由以下两个部分组成

算法本身需要占据的空间:变量,常数,指令,输入输出

算法要使用的辅助空间

例:这里t和b[i]都是辅助空间,相当于临时用的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据结构算法是计算机科学中非常重要的基础知识。数据结构是指在计算机中组织和存储数据的方式,而算法则是解决问题的步骤和方法。下面是关于数据结构算法的基础知识: 1. 数据结构学习的内容: - 数据结构的学习主要包括如何用程序代码将现实世界的问题信息化,以及如何用计算机高效地处理这些信息并创造高价值。 - 数据结构学习的目标是掌握各种数据结构的特点、操作和应用场景,以便在解决实际问题时能够选择合适的数据结构。 2. 数据的定义: - 数据是对客观事物的符号表示,是计算机程序的基本元素。 - 数据可以是数字、字符、字符串、图像等各种形式。 3. 程序 = 数据结构 + 算法: - 程序由数据结构算法组成,数据结构用于组织和存储数据,算法用于处理数据。 - 数据结构算法是程序设计的核心内容,对程序的效率和质量有着重要影响。 4. 算法的特性: - 有穷性:算法必须在有限的步骤内结束。 - 确定性:算法中的每条指令都有确切的含义,对于相同的输入只能得到相同的输出。 - 可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。 5. “好”算法的特质: - 正确性:算法应该能够正确地解决问题。 - 可读性:算法应具有良好的可读性,以帮助人们理解。 - 健壮性:算法能够适当地处理非法输入,而不会产生奇怪的输出结果。 - 高效率与低存储需求:算法执行速度快,时间复杂度低;算法不占用过多的内存,空间复杂度低。 6. 算法效率度量: - 时间复杂度:用来估计算法的时间开销与问题规模的关系。 - 空间复杂度:用来估计算法的存储空间需求与问题规模的关系。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值