什么是数据结构?什么是算法?

一、什么是数据结构?

假如要解决这样的一个问题
要用电脑统计一个班的学生成绩,身高,性别,姓名。

如果用C语言实现,此时会想创一个结构体,用这个结构体的每个成员,来表示身高,分数,性别,姓名。这个结构体,就描述了某一个学生。

而学生之间有什么关系呢?他们只是一个集合,之间没有关系。那此时可以考虑使用线性结构来描述整个班的学生。

所以,数据结构就是:
当要使用计算机来解决问题的时候,需要先使用编程语言把问题涉及到的对象或者元素描述出来(或者说定义出来,或者说表示出来),这个描述,就是数据结构。

数据结构有三种,线性结构,树状结构,图状结构。

而学数据结构要学什么?

就是当要用计算机解决问题的时候,已经判断出了问题涉及的对象和对象之间的关系,此时,用编程语言把这个问题对象描述出来方法,以及对这些对象如何进行一些基本操作,就是要学会和熟练掌握的。

如何抽象问题呢?
基本的抽象方法;
1、把对象抽象成点。
2、把对象之间的关系,抽象成线。

就比如,上面例子中,把学生抽象成了一个结构体成员,每一个成员之间没有关系,或者只是前后关系。所以,把他们一个个串起来,就仿佛是一条线,所以使用线性结构来描述这个问题。
分析出来是线性结构,用编程语言怎么描述,就是学习数据结构的意义。

二、什么是算法

用数据结构把问题涉及的对象,还有对象之间的关系描述出来之后。
针对对象的处理步骤,就是算法。

所以说,程序 = 数据结构 + 算法。

算法要如何评估。
看算法占用的资源,也就是CPU占用率和内存占用。
现在内存价格降低后,内存占用的评估就不是那么重要了,关键是CPU的占用。

也就是看这个算法:
执行了什么操作,做了多少次操作。
也就是 算法有多快。

通常使用O表示法。表示算法的时间复杂度。
如果用大O表示法表示的值相同,则表示算法处于同一个数量级。

算法的特点
1、算法一定要有输入。
2、算法一定要有输出。
3、有限指令。所以一定会停下来。
4、每一步操作要明确。
5、可实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值