当前位置:首页 > 教育培训 >

不学数据结构可以直接学算法吗(先学算法还是先学数据结构)

来源:原点资讯(www.yd166.com)时间:2023-06-18 18:27:42作者:YD166手机阅读>>

随着科学技术的发展,人工智能已经逐渐渗透到各个行业,这是一个相当有前景的专业领域。

其中,算法工程师这一职位更是非常火爆,在急缺大量人才的同时,也吸引了众多求职者,那么,初学者该如何学好算法呢?

算法工程师的具体分支:

不学数据结构可以直接学算法吗,先学算法还是先学数据结构(1)

其次,算法工程师的必备技能:

▲ 至少熟悉一门编程语言 C/C /Java/python/R;

▲ 功底;熟练运用各种常用算法和数据结构,有独立的实现能力;

▲ 熟悉数据挖掘算法;

▲ 熟悉机器学习相关知识理论。

▲ 加分项:具有较为丰富的项目实践经验。

好奇的你看到这里,肯定带着大大的疑问:是不是要直接学习这些算法呢?

万丈高楼平地起,任何高深的算法都要从基础算法学起,不可能一口吃个胖子。

所以,初入门的你学习算法还是要从基础开始:

▲ 首先学习一门语言。

例如 C/C /Java/python,初学者学 C 比较普遍。

▲ 学数据结构。

数据结构书有很多,但是有些教材晦涩难懂,建议看图解多,通俗易懂的书,推荐《趣学数据结构》。

▲ 学算法。

不要直接看《算法导论》,大量证明会让你崩溃。推荐《趣学算法》,有问题分析,完美图解,伪码详解,实战演练,适合初学者快速掌握经典算法。

接下来,让我们跟随《趣学数据结构》《趣学算法》作者陈小玉老师的视角,找到学习算法与数据结构的窍门!

不学数据结构可以直接学算法吗,先学算法还是先学数据结构(2)

01

为什么要学数据结构?

招聘和数据不得不说的故事

如果你关注招聘试题,就会发现越是大公司,问的问题越基础,有的甚至问你什么是栈和队列,反而一些小公司会关心你做过什么系统,关注点不同。

大公司更注重基础扎实,发展潜力,而小公司希望你立刻、马上为他干活,通常是没什么技术含量的活。小公司喜欢细而长的竹子,大公司更喜欢碗口粗的竹笋。

我曾经推荐一个学生到某知名公司,没多久,学生给我说了应聘的事情:“我介绍我开发了企业管理系统、在线商城系统等等,没想到他问我使用了什么数据结构和算法,我懂很多技术,那么多功能我都实现了,他不问,却问我使用了什么数据结构和算法,你说搞笑不?数据结构、算法我早就忘了,我会开发软件还不行吗?”

人力资源总监也反馈过来意见:“很搞笑,这个学生做了不少系统,却说根本没用到数据结构和算法。”

既然双方都觉得这是一个件搞笑事,我们就摊开来看,数据结构到底是什么东西。

拨云见日,看清数据结构

遇到一个实际问题,需要解决两个事情:

(1) 如何将数据存储在计算机中;

(2) 用什么方法策略解决问题。

前者是数据结构,后者是算法。

只有数据结构没有算法,相当于只把数据存储到计算机中而没有有效的方法去处理,就像一幢只有框架的烂尾楼;若只有算法,没有数据结构,就像沙漠里的海市蜃楼,只不过是空中楼阁罢了。

数据是一切能输入到计算机的信息总和,结构是指数据之间的关系,数据结构就是将数据及其之间的关系有效地存储在计算机中。算法是指对特定问题求解步骤的一种描述,说白了就是解决问题的方法策略。

数据结构和算法不依赖于语言,什么语言无所谓。但是如果上机实现的话,就要使用计算机语言。

遇到一个实际问题,充分利用所学的数据结构,将数据及其之间的关系有效地存储在计算机中,然后选择合适的算法策略,并用程序高效实现,这就是N.Wirth 教授所说的:

数据结构 算法=程序。

不学数据结构可以直接学算法吗,先学算法还是先学数据结构(3)

计算机专业本科生都开设数据结构课程,它是计算机学科知识结构的核心和技术体系的基石。

研究生考试也是必考科目,随着科学技术的飞速发展,数据结构的基础性地位不仅没有动摇,反而由于近年来算法工程师的高薪火爆,而得到了业内空前的重视。

很多人觉得基本的数据结构及操作已经在高级语言(如 C 、JAVA 语言中)中封装,栈、队列、排序、优先队列等都可以直接调用库函数,学会怎么调用就好了,干嘛要重复造轮子?

02

学习数据结构有什么用处?

学习数据有效存储的方法

很多学生在学习数据结构时,问我要不要把单链表插入删除代码背下来?要不合上书就不会写了。我非常诧异,为什么要背?理工科技术知识很少需要记忆的,是用的,用的!学习知识不是死记硬背,更重要的是学习处理问题的方法。

同一个问题,如何有效地存储数据,不同的数据结构产生什么样的算法复杂性,有没有更好的存储方法提高算法的效率?

例如,用顺序表查找需要O(n)的时间复杂度,用平衡树查找需要 O(logn)的时间复杂度。这是什么概念呢?就像你有 10 个亿,一觉醒来,兜里只剩下 30 块!

处理具有复杂关系的数据

现实中很多具有复杂关系的数据,无法通过简单的库函数调用实现。专业认证中特别强调培养学生解决复杂工程问题的能力,什么是复杂工程问题?

就是需要综合运用多个知识技术解决的问题。如同现在很多芯片高度集成,完全不需要芯片内部如何,直接使用就行了。

但是,如果在现实中遇到一个复杂问题,一个芯片只能完成其中一个功能,难道要连接十几块芯片来解决这一个问题?

你在搞圣诞树嘛?一个树枝挂个小礼物,叮叮当当的乱响。这显然是不合适的,我们需要的是完成该复杂问题的一个芯片,因此需要运用所学的数据结构知识,高效处理具有复杂关系的数据。

不学数据结构可以直接学算法吗,先学算法还是先学数据结构(4)

首页 123下一页

栏目热文

自学大学数据结构要学多久(零基础自学数据结构用哪本书)

自学大学数据结构要学多久(零基础自学数据结构用哪本书)

三个月怎么把数据结构学到考研水平,三个月的话,其实正常人应该够了,如果你是已经大三,或者有一定编程水平,为什么这么说?因...

2023-06-18 18:37:48查看全文 >>

数据结构和算法难学吗(数据结构与算法课程难吗)

数据结构和算法难学吗(数据结构与算法课程难吗)

算法与数据结构到底难不难,好不好学?很多人有着这样的困惑,因为程序员面试特别喜欢问算法与数据结构题,身边很多朋友都临时抱...

2023-06-18 18:03:42查看全文 >>

学校没有数据结构需要自学吗

学校没有数据结构需要自学吗

对于程序员来说,数据结构真的很重要,但是对于单片机程序员来说,很多人可能都是非计算机科班出生,数据结构都是自学的。至少我...

2023-06-18 18:03:58查看全文 >>

数据结构与算法考研怎么学(算法与数据结构考研什么专业)

数据结构与算法考研怎么学(算法与数据结构考研什么专业)

原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 简介 学习编程,数据结构是你必须要掌握的基础知...

2023-06-18 18:46:27查看全文 >>

算法与数据结构网课容易通过吗(数据结构与算法超星网课答案)

算法与数据结构网课容易通过吗(数据结构与算法超星网课答案)

算法与数据结构到底难不难,好不好学?很多人有着这样的困惑,因为程序员面试特别喜欢问算法与数据结构题,身边很多朋友都临时抱...

2023-06-18 18:50:31查看全文 >>

数据结构与算法研究生就业(数据分析与算法研究生就业)

数据结构与算法研究生就业(数据分析与算法研究生就业)

这几年,我想大家今年听到最频繁的当属:“内卷”和“躺平”了从这两个词开始在网络上流行的时候希老师就开始疑惑:明明应该是年...

2023-06-18 18:20:42查看全文 >>

学数据结构要掌握算法吗(数据结构和算法哪个先学)

学数据结构要掌握算法吗(数据结构和算法哪个先学)

作为计算机专业的一名“老兵”,笔者从事数据结构和算法的研究已经近20余年了,在学习的过程中,也会遇到一些问题,但在解决问...

2023-06-18 18:12:22查看全文 >>

学数据结构需要学数学吗(零基础能学数据结构吗)

学数据结构需要学数学吗(零基础能学数据结构吗)

在头条逼逼赖赖很久了,终于下定决心写一些专业的内容。看了很多程序员35岁遇到的危机,左思右想,大部分是算法与数据结构的核...

2023-06-18 18:28:46查看全文 >>

数据结构与算法难学吗(数据结构难不难学)

数据结构与算法难学吗(数据结构难不难学)

如果你关注计算机专业招聘试题,会发现越是大型公司,问的问题越基础,有的甚至问你什么是栈和队列,反而一些小公司会关心你做过...

2023-06-18 18:36:38查看全文 >>

数据结构考试难不难(数据结构考试是机考吗)

数据结构考试难不难(数据结构考试是机考吗)

数据结构到底难在哪里?有很多人都在说数据结构你好难,总结下来可能就是以下的几大难题,一、难以接受的描述方式。不得不说,数...

2023-06-18 18:25:44查看全文 >>

文档排行