算法和数据结构的关系(区别)

一句话:
相互之间存在关系的数据元素的集合就是数据结构,算法是解决特定问题的有限求解步骤。

一张图:
在这里插入图片描述

学习数据结构与算法有什么用呢?拿一个厨师的厨艺来比较的话,真正的大厨一般不是那种能做各种花样的菜式的人,而是能把普通的菜炒出不平凡的效果的人。就像“酸辣土豆丝”,不同的人炒出来的效果就不一样,从一道简单的菜就可以看出厨师的功底,而数据结构与算法就是程序员的功底。

回到图上,由图中可以看出,数据结构操组的对象是数据元素,即他们有相同的属性(属性也取决于观察者的角度),它们之间的存在的关系会产生不同的结构,数据元素之间的关系+操作构成了数据类型,对已有的数据类型进行抽象就构成了抽象数据类型(ADT),就是封装了值和操作的模型。

在看算法这一块,就是根据输入,设计可行的计算方法并用有限的可执行步骤描述出来(程序),最终得到确定的输出。(从中也可以看出算法的5大特性:输入,输出,有穷性,确定性,可行性)

评估一个算法的好坏常用时间复杂度,时间复杂度的计算方法也可以分为3步,具体步骤图上已经给出,举个例子来说(不考虑输入输出的时间以及每个步骤之间的时间差异):如果程序需要执行3n2+10n+203n2+10n+20次,那么第一步将化简为3n2+10n+13n2+10n+1,第二步将化简为3n23n2,第三步化简为n2n2,最终时间复杂度为O(n2)O(n2)。

线性表,堆栈,串,树,图是常见的用抽象数据类型定义的结构,查找和排序是常见的算法。

————————————————
版权声明:本文为CSDN博主「土豆洋芋山药蛋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33414271/article/details/80366014

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值