算法与数据结构(面向对象思想)

爱职场
爱职场
爱职场
51
文章
0
评论
2020-04-1803:05:00 评论 103 1568字
摘要

算法与数据结构和编程之间关系计算机就是算法与数据结构,当你选择搜索这类的文章的时候,你已经在翻大山了编程就是当你翻过一座山的时候,你发现前面还有一座更高的山.

本文以作者从事JAVA一年来的开发经验尝试着去说一说算法和数据结构与编程的奇妙关系.

比较官方的说法就是(来自百度):

算法: 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入.

数据结构: 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.

有些新学习编程的小伙伴肯定会蒙圈,特别是对数学不好的,像我就是数学学渣,那么下面请跟着学渣的视角进入编程的世界,

先说数据结构,毕竟算法也得有东西算,才又算法,所谓先有鸡后有蛋,数据结构,既然是结构,里面肯定是有不同的数据的,对我而言,与其叫数据结构,不如叫数据流,数据流中包含了各种数据,数据结构构成流,流亦是数据结构,面向对象就是,万物皆数据,以流的形式呈现.

首先要想明确数据流最重要就是两个词

数据: 单个元素,也可以是数据流,

数据流,: 多种数据融合在一起

比如举个例子,我们尽量一个现实的物体来描述,并且数据流很小的,比如一盒香烟,把香烟比作数据流,它的数据结构既是纸,烟草,再细分构成纸数据流的又是树皮,水,木浆,数据流中包含数据流,每一种元素细分都是一种数据流.在大的数据流面前,小的数据流又变成了大数据流的数据,呈现的形式就一包香烟.

再比较大的,例如一栋大楼,

从数据分析,表面上看它是由墙壁,砖头,钢材等多种数据,这着数据又是数据流,因为墙壁又包含了多种数据,水泥,瓷砖,各种数据组合在一起就形成了一栋大厦

现在就可以说算法了

有人说算法和函数不一样

算法是自己写的,函数是用来调用的

那什么样的人才是写算法的呢,现在的编程语言,谁不用API,都是在用之前的人写的代码,加之自己的分支,循环,判断,得到一种结果,那别人的代码也是建立在别人的别人的代码之上写的,那恐怕只有发明计算机的人才是写算法的人了,

作者认为,传入多个参数,输出多个参数和结果,这个过程就叫算法和函数,算法=函数.

回到之前举的例子,一栋大楼,虽然是由各种数据构成的,但是数据都是散开的,数据无法自己聚合在一起,形成数据流,

不会自己变成我们想要的结果,

而算法就是中间的粘合剂,中间关口,它决定传入的参数,对数据流进行,改修,留下需要的,抛弃不需要的,将数据和其他数据组成在一起,形成数据流,将数据流和数据流组成在一起,形成新的数据流,将数据流拆分成数据,再聚合,这就是算法的作用,现在的人不都是喜欢讲灵魂吗? 算法就是数据流的灵魂,没有算法的数据实时没有灵魂的,

所有编程的人员的,不论哪种语言,第一个案例应该都是"你好 世界",LZ这里以JAVA为例,"

System.out.println("Hello world");

这就是将数据原样输出到控制台,当然避开jdk内部的算法,安全检查,编译成字节码文件再由虚拟机运行,发送给CPU执行指令

再写一个带算法的,不用多高深

int a = 10;if(a < 9){System.out.println(a);}

我们定义了参数,但是我们有选择权不输出,就是算法,单纯的数据没有算法进行改造没有太大意义的

现在的web应用比如说一个去某宝上面选择一个商品加入购物车,你选择的商品,你的账户信息,等各种信息以数据流的形式到服务器,服务器通过算法,检查数据流的安全性,从数据流获取想要的数据,决定哪些数据需要保存起来,将数据经过重构,考虑是否需要返回给你,再已新的数据流的形式返回给你,客户端获取数据流,在通过算法,聚合数据流,包装数据流,呈现出视图,就是你看见的商品已经再购物车的效果了

算法与数据结构(面向对象思想)

End

作者:愤怒的山羊 来源:CSDN

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: