算法和数据结构的关系
3个回答
展开全部
数据结构是数据间的有机关系,算法是对数据的操作步骤。这两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系。没有数据间的有机关系,程序根本无法设计,例如,设计a+b的程序,你总得找到a和b的值吧,a和b必须是可以互相找到的才能进行程序运算,a和b就必然要联结成一定的关系,或是线性关系,或是树型关系,或者是图型关系,你的程序才能产生,杂乱无章的数据-------就是没有数据结构的数据,是没有算法的,你试试做一个电子运动的时间和坐标对应的算法看看行不行,显然不行。因为有了数据结构,算法才能诞生。反过来,算法又是数据结构得以维持的一个条件,没有算法,数据根本无法有规律的打交道,也就是说数据的间只会是杂乱无章地碰撞,这样数据结构就会消灭。算法是绝对运动的,数据结构是相对静止的,二者是不可分割的关系。数据结构和算法不仅仅是计算机中才有的,计算机是后来诞生的东西,计算机的概念来源于自然界,自然界中例如一棵树的根和树叶之间的信息交流就是一个算法,是建立在根数据和树叶数据之间可以相通的关系上的算法,计算机只是自然界的一个模拟,编程语言不是程序的一个要素,因为自然界是没有语言的,但是有程序,这是唯物主义的观点。
算法是活泼的,数据结构是迟钝的,算法的发展要求数据结构跟着发展,否则就会阻碍算法的发展,算法的发展或迟或早必然冲破数据结构的束缚,二者必然将建立在一个新的起点继续着矛盾运动,
数据结构是相对静止的,算法是绝对运动的,这二者首先表现为不可分割的关系。没有一定组织关系的数据,算法就无法产生,你不可能对一堆杂乱无章的数据编写算法,你要想对数据进行操作,必须能够找到数据,这样就必须将它们按照一定规律组织起来-----这个过程不一定是算法,但是算法可以实现这个过程,数据结构是算法得以诞生的条件-----否则就是数据间的杂乱无章的运动,但是运动并不是算法。反过来算法是数据结构得以维持的条件,没有了算法对数据进行操作,数据就不会有规律地进行交互,数据结构也就随之消灭。客观世界是物质的,物质是运动的,运动是有规律的,有规律的运动就是程序,客观世界是存在程序的,所以不用担心没有算法世界会怎么样,如果没有规律的运动,就不会有人。
算法的革命的、活泼的,数据结构是反动的、迟钝的,算法的发展必然推动数据结构的发展,简单的数据结构不可能适应复杂的算法,只有提供多种复合的数据结构才能为复杂的算法提供新的空间,算法的发展必然会冲破数据结构的束缚-----不过不要忘记了这种物的规律是由人来实现的。
算法是活泼的,数据结构是迟钝的,算法的发展要求数据结构跟着发展,否则就会阻碍算法的发展,算法的发展或迟或早必然冲破数据结构的束缚,二者必然将建立在一个新的起点继续着矛盾运动,
数据结构是相对静止的,算法是绝对运动的,这二者首先表现为不可分割的关系。没有一定组织关系的数据,算法就无法产生,你不可能对一堆杂乱无章的数据编写算法,你要想对数据进行操作,必须能够找到数据,这样就必须将它们按照一定规律组织起来-----这个过程不一定是算法,但是算法可以实现这个过程,数据结构是算法得以诞生的条件-----否则就是数据间的杂乱无章的运动,但是运动并不是算法。反过来算法是数据结构得以维持的条件,没有了算法对数据进行操作,数据就不会有规律地进行交互,数据结构也就随之消灭。客观世界是物质的,物质是运动的,运动是有规律的,有规律的运动就是程序,客观世界是存在程序的,所以不用担心没有算法世界会怎么样,如果没有规律的运动,就不会有人。
算法的革命的、活泼的,数据结构是反动的、迟钝的,算法的发展必然推动数据结构的发展,简单的数据结构不可能适应复杂的算法,只有提供多种复合的数据结构才能为复杂的算法提供新的空间,算法的发展必然会冲破数据结构的束缚-----不过不要忘记了这种物的规律是由人来实现的。
展开全部
记得网上曾经有一个帖子,大概的列出了学习ACM来说需要的知识背景。如果不是牛人,或者天生受虐倾向,普通人看到了都会晕倒,多达100多个科目(全部需要数学背景)。楼主觉得你能学的过来吗?
但是,所有的算法,乃至数学在实际运用中都是要根据不同的数据来选择不同的方法,所以一般学习过算法和数据结构的人都会越发的认识到,数据才是程序的中心,只有找到了一个组织数据的最佳方式,算法的运用才会事半功倍。比如我印象最深刻的是在大二时做的一道题目:判断一个输入的数是否符合科学计算法。如e*103,-30.90*103就不是。 这样一道题,如果用普通的数组线性存储,然后逐一判断,效率的算法的复杂度都是不合格的。 有限状态机则清晰明了的解决了这个问题。即把所有可能的状态和状态的转换画成一个矩阵,然后每读取一个输入的字符就在这些状态中跳转,直到最后一个字符为止,判断最终状态是有效还是无效状态。
总而言之:数据结构是问题的核心,是算法的基础。
建议楼主先磨好数据结构这把剑,对算法也不用着急,毕竟很多的数据结构的书中都有一些基础算法的介绍的。
但是,所有的算法,乃至数学在实际运用中都是要根据不同的数据来选择不同的方法,所以一般学习过算法和数据结构的人都会越发的认识到,数据才是程序的中心,只有找到了一个组织数据的最佳方式,算法的运用才会事半功倍。比如我印象最深刻的是在大二时做的一道题目:判断一个输入的数是否符合科学计算法。如e*103,-30.90*103就不是。 这样一道题,如果用普通的数组线性存储,然后逐一判断,效率的算法的复杂度都是不合格的。 有限状态机则清晰明了的解决了这个问题。即把所有可能的状态和状态的转换画成一个矩阵,然后每读取一个输入的字符就在这些状态中跳转,直到最后一个字符为止,判断最终状态是有效还是无效状态。
总而言之:数据结构是问题的核心,是算法的基础。
建议楼主先磨好数据结构这把剑,对算法也不用着急,毕竟很多的数据结构的书中都有一些基础算法的介绍的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据结构+算法=程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询