数据结构和算法绪论

程序设计=数据结构+算法

数据结构

数据结构就是数据元素相互之间存在一种或多种特定关系集合。
数据结构分为逻辑结构和物理结构。

0.逻辑结构

逻辑结构是指数据对象中数据元素之间的相互关系

0)集合结构

集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他不三不四的关系。

1)线性结构

线性结构:线性结构中的数据元素之间是一对一的关系。

2).树形结构

树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。

3)图形结构

图形结构:图形结构的数据元素是多对多的关系。

1.物理结构

物理结构是指数据的逻辑结构在计算机中的存储形。我们要
将数据元素存储到计算机的存储器中。
存储器主要是针对内存而言的 ,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件来描述。

0)顺序存储结构

顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的

1)链式存储结构

链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
链式存储结构的数据元素 存储关系并不能反映其逻辑关系,因此需要一个指针存放数据元素的地址,这样子通过地址就可以找到相关数据元素的位置。

算法

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

0.算法的特征

0)输入
  • 算法具有零个或多个输入。
  • 输入参数都是必要的。
1)输出
  • 算法至少有一个或多个输出。
  • 算法是一定要输出的,输出的形式可以是打印形式输出,也可以是返回一个值或多个值等。
2)有穷性
  • 指算法在执行有限的步骤后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。
3)确定性
  • 算法的每一个步骤都具有确定的含义,不会出现二义性。
  • 算法在一定条件下,只有一条执行路径,相同的输入只能有唯一的输出结果。

随机数:
计算机中的随机数其实是伪随机数。
随机生成函数rand()需要一颗种子才能生成随机数。
但是如果你给的种子是一样的,那么生成的随机数不变。
所以算法有确定性一个输入,有唯一一个输出。
想要生成随机数需要用到时间个srand函数来生成种子放到rand中,时间一直变化,所以生成数是可以看成是随机的。

4)可行性
  • 算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。

1.算法设计的要求

0)正确性

算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义、能正确反映问题的需求、能够用得到问题的正确答案。

1)可读性
  • 算法设计的另一目的是为了便于阅读、理解和交流。
  • 我们写代码的目的,一方面是为了让计算机执行,另一个是为了便于他人阅读和自己日后阅读修改。
2)健壮性
  • 当输入数据不合法时,算法也能做出相关处理,而不是产生异常、崩溃或莫名其妙的结果。
3)时间效率高和存储量低
  • 程序运行速度要快
  • 程序所占内存要低
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值