学算法之前一定要学数据结构吗?

时间:2021-09-25 05:18:54
如题~~~~~
请各位高手不吝赐教。
给小弟讲讲算法与数据结构之间千丝万缕的关系~
谢谢

44 个解决方案

#1


那个是基础吧……

#2


算法必须依附于一定的数据结构上。

不严谨的说,算法好比做事的步骤,而每一步都需要操作数据,
这些数据要以一种合理的方式组织起来,就是数据结构。

有牛人说:“数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。”

#3


数据结构最经典的视频和书分别是哪个?严蔚敏那个?小弟要恶补数据结构了~~~~~~~~ 学算法之前一定要学数据结构吗?

#4


严蔚敏那个顶好的
尽量吃透吧

#5


严蔚敏的书只能作为入门

#6


该回复于2011-01-28 08:57:16被版主删除

#7


STL的思想不就是 数据结构 和 算法分离嘛

#8


建议楼主去看看《算法导论》这本书,经典!!!

#9


引用 8 楼 lzqgdut 的回复:
建议楼主去看看《算法导论》这本书,经典!!!


这本书不适合入门吧 学算法之前一定要学数据结构吗?

#10


看看对你算法的理解和优化有帮助!!!

#11


[数据结构与算法分析C.描述].(美国)Mark.Allen.Weiss
这本书也不错。

#12


数据结构和算法是密不可分的。
就好像一个硬币的两面。

#13


引用 12 楼 cnmhx 的回复:
数据结构和算法是密不可分的。
就好像一个硬币的两面。


强烈认同!两者相辅相成

#14


个人看法:
先看严的《数据结构》,其实里面已经包含了些基本的算法。
接着看《算法导论》。
祝LZ进步!

#15


离散数学及其应用+算法导论

#16


引用 15 楼 zuomail 的回复:
离散数学及其应用+算法导论


顶这句

#17


不明白Lz为什么绕过它,它比算法貌似好学一些

#18


引用 2 楼 dengzikun 的回复:
有牛人说:“数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。”

请问如何选择正确的数据结构?又如何从一个数据结构联想到正确的算法?怎样算是正确?

#19


数据结构是算法的一部分

#20


算法是解决事情的方法,
数据结构是如何更好地存储数据的方法,
也就是说:算法的概念比数据结构的概念范围大。

#21


没必要,二者可一起学。

#22


恩 必须的。

#23


算法,就是研究最小时间+空间复杂度的。
当然,问题实在太复杂的情况下,能解决问题就不错了,比如遗传算法就是没有常规算法情况下的算法。

数据结构我认为是算法的一部分
好比你从米堆里分拣并且排列颗粒,你要有容器或者类似筛子,簸箕一样的东西。

二叉树,哈希表就是最实用的容器工具了,你可以实现O(logN)或O(1)查找,O(n*logN)排序

离开数据结构基础,你是业余选手,算法无从谈起。
熟悉数据结构是必须的,和业内人士对话的时候,只需要说:
这个存到二叉树里,对方就知道这个要搜索和排序。
存到哈希表里,对方就知道这个只搜索不排序。

这样的头脑训练,是要到条件反射的级别的。


#24


Weiss的书很好,推荐

#25


算法是灵魂。

#26


算法是灵魂。

/////////////////////////
数据结构和算法同样重要
在现实工作中数据结构可能更重要一些。
因为现实中对效率的需求是弹性的
而内存的限制是无法改变的(针对海量数据处理,不是买几G内存那么简单)

#27


我就是从看数据结构开始学习算法的,相辅相成,对数据结构有一点了解的话再一起深入研究这两门也可以,

#28


必须学

#29


最好必须学的,两者密不可分。

#30


专著当然可以有所偏重。但——
学习当然要同时学啊!本来就不能分开的嘛。

#31


最好还是学一学吧。很多都是基于这个的。

#32


算法导论绝对适合入门,都是基本算法,而且讲解详细

#33


引用 32 楼 qqwqert001 的回复:
算法导论绝对适合入门,都是基本算法,而且讲解详细

真的吗?

#34


算法很重要

#35


数据结构就是表示事物的基础。

#36


程序 = 数据结构 + 算法
二者都是灵魂啊
所以都要学的,都是很重要的。

#37


算法就是操作数据结构的,不学数据结构学算法你会很蛋疼的

#38


严蔚敏老师的视频 可以看看 

#39


引用 26 楼 jiangbin00cn 的回复:
算法是灵魂。

/////////////////////////
数据结构和算法同样重要
在现实工作中数据结构可能更重要一些。
因为现实中对效率的需求是弹性的
而内存的限制是无法改变的(针对海量数据处理,不是买几G内存那么简单)


哈哈,那数据结构式肉体?iterator是什么?

#40


数据结构是基础吧,比较重要的

#41


本人最近也准备看这个,数据结构是基础,一起学习吧!

#42


就好比没有转头 你怎么造房子

#43


要啊  数据结构很重要的

#44


正在看严蔚敏的《数据结构》,但是C语言的东西好多都搞忘了。恶补啊~

#1


那个是基础吧……

#2


算法必须依附于一定的数据结构上。

不严谨的说,算法好比做事的步骤,而每一步都需要操作数据,
这些数据要以一种合理的方式组织起来,就是数据结构。

有牛人说:“数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。”

#3


数据结构最经典的视频和书分别是哪个?严蔚敏那个?小弟要恶补数据结构了~~~~~~~~ 学算法之前一定要学数据结构吗?

#4


严蔚敏那个顶好的
尽量吃透吧

#5


严蔚敏的书只能作为入门

#6


该回复于2011-01-28 08:57:16被版主删除

#7


STL的思想不就是 数据结构 和 算法分离嘛

#8


建议楼主去看看《算法导论》这本书,经典!!!

#9


引用 8 楼 lzqgdut 的回复:
建议楼主去看看《算法导论》这本书,经典!!!


这本书不适合入门吧 学算法之前一定要学数据结构吗?

#10


看看对你算法的理解和优化有帮助!!!

#11


[数据结构与算法分析C.描述].(美国)Mark.Allen.Weiss
这本书也不错。

#12


数据结构和算法是密不可分的。
就好像一个硬币的两面。

#13


引用 12 楼 cnmhx 的回复:
数据结构和算法是密不可分的。
就好像一个硬币的两面。


强烈认同!两者相辅相成

#14


个人看法:
先看严的《数据结构》,其实里面已经包含了些基本的算法。
接着看《算法导论》。
祝LZ进步!

#15


离散数学及其应用+算法导论

#16


引用 15 楼 zuomail 的回复:
离散数学及其应用+算法导论


顶这句

#17


不明白Lz为什么绕过它,它比算法貌似好学一些

#18


引用 2 楼 dengzikun 的回复:
有牛人说:“数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。”

请问如何选择正确的数据结构?又如何从一个数据结构联想到正确的算法?怎样算是正确?

#19


数据结构是算法的一部分

#20


算法是解决事情的方法,
数据结构是如何更好地存储数据的方法,
也就是说:算法的概念比数据结构的概念范围大。

#21


没必要,二者可一起学。

#22


恩 必须的。

#23


算法,就是研究最小时间+空间复杂度的。
当然,问题实在太复杂的情况下,能解决问题就不错了,比如遗传算法就是没有常规算法情况下的算法。

数据结构我认为是算法的一部分
好比你从米堆里分拣并且排列颗粒,你要有容器或者类似筛子,簸箕一样的东西。

二叉树,哈希表就是最实用的容器工具了,你可以实现O(logN)或O(1)查找,O(n*logN)排序

离开数据结构基础,你是业余选手,算法无从谈起。
熟悉数据结构是必须的,和业内人士对话的时候,只需要说:
这个存到二叉树里,对方就知道这个要搜索和排序。
存到哈希表里,对方就知道这个只搜索不排序。

这样的头脑训练,是要到条件反射的级别的。


#24


Weiss的书很好,推荐

#25


算法是灵魂。

#26


算法是灵魂。

/////////////////////////
数据结构和算法同样重要
在现实工作中数据结构可能更重要一些。
因为现实中对效率的需求是弹性的
而内存的限制是无法改变的(针对海量数据处理,不是买几G内存那么简单)

#27


我就是从看数据结构开始学习算法的,相辅相成,对数据结构有一点了解的话再一起深入研究这两门也可以,

#28


必须学

#29


最好必须学的,两者密不可分。

#30


专著当然可以有所偏重。但——
学习当然要同时学啊!本来就不能分开的嘛。

#31


最好还是学一学吧。很多都是基于这个的。

#32


算法导论绝对适合入门,都是基本算法,而且讲解详细

#33


引用 32 楼 qqwqert001 的回复:
算法导论绝对适合入门,都是基本算法,而且讲解详细

真的吗?

#34


算法很重要

#35


数据结构就是表示事物的基础。

#36


程序 = 数据结构 + 算法
二者都是灵魂啊
所以都要学的,都是很重要的。

#37


算法就是操作数据结构的,不学数据结构学算法你会很蛋疼的

#38


严蔚敏老师的视频 可以看看 

#39


引用 26 楼 jiangbin00cn 的回复:
算法是灵魂。

/////////////////////////
数据结构和算法同样重要
在现实工作中数据结构可能更重要一些。
因为现实中对效率的需求是弹性的
而内存的限制是无法改变的(针对海量数据处理,不是买几G内存那么简单)


哈哈,那数据结构式肉体?iterator是什么?

#40


数据结构是基础吧,比较重要的

#41


本人最近也准备看这个,数据结构是基础,一起学习吧!

#42


就好比没有转头 你怎么造房子

#43


要啊  数据结构很重要的

#44


正在看严蔚敏的《数据结构》,但是C语言的东西好多都搞忘了。恶补啊~