关于数据结构与算法学习路线推荐

1.什么是数据结构

数据结构(Data Structure)是计算机存储、组织数据的方式。指相互之间存在一种或者多种特定关系的数据元素的集合。
数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下;羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。

2.什么是算法

算法(Algorithm)就是定义良好的计算过程,取一个或者一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来输入数据转换成输出结果。
在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精妙的算法思想。

3.数据结构和算法的主要性

现在公司对学生的代码能力的要求越来越高了,大厂笔试中几乎全是算法题而且难度大,中小场的笔试中也有算法题。算法不仅笔试中考察,面试中面试关也基本都会人你现场写代码。而且算法能力短时间内无法快速提高,至少需要半年以上的算法训练积累,否则真正校招时笔试会很艰难因此算法要早早准备。

4.学习路线

从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。
阶段一:算法入门。我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效率等方面的内容。
阶段二:刷算法题。建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线”来
复习题目,通常在进行 3~5 轮的重复后,就能将其牢记在心。
阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心得可以在各个社区找到。

5.数据结构和算法书籍推荐

我会推荐GitHub上很热门的[Hello 算法](krahets/hello-algo: 《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 代码。简体版和繁体版同步更新,English version ongoing (github.com))这是免费开源的,很适合初学者的学习。

6.刷题网页的推荐

另外关于刷题的网站还是首推[Leetcode](力扣 (LeetCode) 全球极客挚爱的技术成长平台)
如果有一些算法基础的话,推荐Codeforces

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yui_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值