如何学好数据结构?

article/2025/10/13 15:34:25

大家好,我是程序员吴师兄。

最近在公众号发布了不少图解 LeetCode 的文章,一些同学在后台打卡,甚是感动,以后也会每天都发布一篇,希望能帮助大家更好的刷题,通过算法面试,进入心仪的大厂。

谈到刷题,还是有一些小技巧的:

  • 1、按算法分类来选题,这种做法可以极大的提高刷题的速度,而且能带来更好的效果
  • 2、刷题的过程中先看懂题目、再分析推导解法、最后转换为代码

当然,这些技巧的前提是你得掌握了基础的数据结构和算法

很多人学算法要么是拿起《算法 4》来啃,结果倒在第二章,要么在网上找一些零散的博客看,导致无法建立一个完整的系统框架,过段时间都忘了,怀疑自己智商不够。

事实上,算法不是纯粹拼智商的,它是可以通过科学合理的方式训练出来的能力,刷题蛮干是不行的,需要遵循科学的方法,算法训练是个系统工程,得循序渐进着来,过于急功近利,反而会因做不出题而产生挫败感,带来反作用。

这两年来,每次有读者问我学数据结构和算法有什么好的图文课程,我都会推荐王争的《数据结构与算法之美》,毫不夸张的说,这是市面上最实用又全面的算法教程,口碑特别好(10W+的订阅量与评论区的大量好评),目前已经安利了 600 人去看,看完后基本上都不害怕刷题了。


v2-ebd6bc9293dded14155186881211217d_b.jpg


运营小姐姐说过几天要涨价了,所以想趁着还有优惠,再次推荐给小伙伴们

数据结构与算法之美_算法实战_算法面试-极客时间

如果你在准备春招,建议把这个专栏刷一遍,这样数据结构基本没啥问题了,然后再按算法分类进行系统的刷题,那么在算法面试环节和面试官谈笑风生不成问题,聊一聊如何根据年龄给 100 万用户数据排序如何快速定位 IP 对应的省份地址如何防止数据库中的用户信息呗脱库

再和大家聊一聊数据结构与算法在平时工作中的作用,毕竟很多人不想学就是不知道学它有啥用,业务工作中貌似又用不到。

举个例子,在工作过程中,我们多多少少都接触过 OAuth2 ,在使用 OAuth2 授权的时候,通常应用会弹出一个类似这样的信息:

  • 1) 获取用户基本信息接口
  • 2) 获取用户列表接口
  • 3) 用户分组管理接口


v2-c53be93020545749c448280a53d1bc36_b.jpg


思考一下,如果让你设计数据库,应该怎么设计信息存储权限

如果你不会数据结构的话,肯定是 if/else 组合各种 API 写一堆臃肿的代码。

而如果你熟练掌握了各种数据结构的特点的话,那自然而然想到使用 bitmap 来存储权限。

我们把权限划分成最小粒度之后,每一个 bit 都它的含义, 例如我们把权限划分为以下几种:

  • 获取你的头像、性别、昵称等基本用户信息
  • 以你的身份发布微博
  • 获取你的好友列表
  • 获取你的朋友圈信息

每勾选一个选项,就代表着这个权限被授权,为了保证可扩展性,我们使用一个 uint64 来保存这些 bit ,也就是说,我们一共可以划分 64 种细分权限,然后对这些权限进行组合。

例如,第一个 bit 如果设置了,那么就代表可以获取你的昵称、头像、地区、性别等基本用户信息, 第二个 bit 如果设置了,就可以用你的身份发状态。

数据结构的实际作用还有挺多,感兴趣的可以搜索以下知识点:

  • 二叉树搜索用于中断处理、登记缓存查找等 哈希表,用于实现索引节点、文件系统完整性检查等
  • 红黑树用于调度、虚拟内存管理、跟踪文件描述符和目录条目等
  • Radix树,用于内存管理、NFS相关查找和网络相关的功能

上面这些例子是关于数据结构的,我再举一个算法的例子,同样的也来思考一个问题:计算机的缓存容量无论再大,缓存满了还是要删除一些内容,给新内容腾位置。

删除哪些内容呢

我们肯定希望删掉哪些没什么用的缓存,而把有用的数据继续留在缓存里,方便之后继续使用。

那么,什么样的数据,我们判定为「有用的」的数据呢?

这个时候采取的策略就是 LRU 缓存淘汰算法。

LRU 的全称是 Least Recently Used,也就是说我们认为最近使用过的数据应该是是「有用的」,很久都没用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。

很多时候判断程序员是不是编程高手,往往就是看这些细节:你用的算法是不是够优化,数据存取的效率是不是够高,内存是不是够节省等等。

如果你还不懂数据结构和算法,或者没有系统的学习过,那肯定说不过去了,赶紧来补一补吧!

数据结构与算法之美_算法实战_算法面试-极客时间

推荐阅读:

程序员吴师兄:剑指 offer 面试题精选图解 04 . 二维数组中的查找 (超详细超容易理解的动画解法!!!)

程序员吴师兄:剑指 offer 面试题精选图解 03 . 数组中重复的数字(超详细超容易理解的动画解法!!!)

程序员吴师兄:LeetCode 全站第一,牛逼!


http://chatgpt.dhexx.cn/article/YcJ3RcrE.shtml

相关文章

为什么要学数据结构?

文章目录 一、前言二、为什么要学数据结构三、数据结构无处不在3.1 数据库3.2 操作系统3.3 文件压缩3.4 游戏 四、数据结构类型 一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认…

如何学习数据结构与算法

经过一段时间的数据结构与算法的学习,和学习了前人的经验,为了更好的指导自己(希望也能帮助到别人)之后数据结构与算法的学习,总结一下数据结构与算法学习的方法。 一、记住数据结构,记住算法思想&#xf…

怎样学好数据结构

1、数据结构学习思路 (1)数据结构是计算机专业最重要最基础的一门课,对于有过编程经验的人,结合自己的编程体会去领悟它的思想;对于初学者,选择一种自己最熟悉的语言去分析它。而且,随着编程经…

如何自学《数据结构与算法》?

众所周知,《数据结构与算法》是程序员面试中的重中之重,也是编程中非常重要的组成部分,然而非科班出身的人,学起来有一个相当长的探索期。下面我整理了一个数据结构与算法的思维导图,供大家参考。 1.总览 2.学习方法 …

入门篇|学渣是如何自学数据结构的?

作者 | 小鹿 来源 | 一个不甘平凡的码农 写在前边 ------------------------------------------- 今日明哥推荐一篇文章,小鹿是个勤快并且认知定位非常清晰,有极强的执行能力的小伙子。作为一个大学生,这个就很流弊了。有时候不是你多牛&am…

MATLAB的.fig文件打不开——有效解决

如果没有报错的话,那么可能是显示关了。报错可能是保存方式不对。可以看下面例子。 文章目录 没报错但打不开报错 没报错但打不开 示例正弦函数图像。 x -pi:pi; y sin(x);显示功能关闭打不开。 figure(visible,off); plot(x,y) savefig(1.fig);下面打得开 f…

matlab命令打开Word文档

本博文源于Matlab骚操作系列,旨在讲述文档打开操作。首先要保证自己有Word。然后我们开始实验。 实验步骤 创建Word服务器设置Word服务器可见新建空白文档写入文档内容保存文档 实验内容 创建word服务器 >> try Word actxGetRunningServer(Word.Applicat…

MATLAB无法直接打开M文件

MATLAB无法直接打开M文件 啊这1. 下载MATLAB文件关联&快捷修复文件2. 在MATLAB添加路径3. 运行associateFiles.m4. 打开生成的注册表文件5. 重启电脑 啊这 穷折腾装了个2020试试,发现安装后没有关联M文件。 添加打开方式为MATLAB,打开M文件只能启动…

matlab无法打开excel的问题

matlab无法打开excel problem怎么解决 problem 重装系统时直接移植了matlab和office两个大套件,之前用matlab调用读取电子表格一直没有什么问题,今天在统计手机上网流量的时候想用matlab对表格里的单位处理一下,好家伙这玩意给我报错把我搞懵…

Matlab突然打不开,运行后一闪就消失了,任务管理器也没有的解决办法

记录一下平时遇到的一些bug Matlab官方issue 参考官网链接有3种可能导致标题现象 一种一种试一下,包括删掉Appdata文件夹的Matlab r2020a文件夹(对我的计算机无效) 最后我的计算机试到第三种就可以了 在桌面启动程序属性里目标路径后加 -nodesktop 再双击运行就…

MATLAB安装后出现问题:MTALAB2021安装后闪退打不开

我之前安装的是2017版本,因需要用到一些最新功能,卸载后安装了2021版本。但按要求安装后无法打开,双击后闪一下,打不开。从网上了解到可能是Windows系统预设文件的损坏(具体我也不清楚,但按步骤可以实现软件…

打开matlab闪退的原因

1.请确定是闪退打不开,还是启动缓慢? 这两天打算掌握一项新技能——Matlab,于是京东买了一本书《MATLAB 2020 从入门到精通实战案例版》 于是下载安装了,matlab 2020b,文件是真的大。下载加安装花了一个小时左右,实际…

电脑上安装的matlab软件打不开怎么办,电脑软件打不开没反应怎么办?

我们在使用电脑的过程中,经常会碰到电脑软件打不开没反应的情况,而检查软件并未发现任何错误问题,这时该怎么办呢?其实解决方法并不难,下面小编给大家分享电脑软件打不开的应对技巧。 XP系统方法/步骤: 1、…

解决MATLAB帮助文档打不开的情况

解决MATLAB帮助文档打不开的情况 问题描述 今天在MATLAB命令行窗口中输入【doc find】,出现了帮助文档打不开的情况。如图1所示。 图1 帮助文档打不开 解决办法 在MATLAB的【主页】中点击【预设】。如图2所示。 图2 点击【预设】 打开之后,如图3所示。…

matlab 18保存的mat数据,MATLAB7打不开

有时候在我们用MATLAB18或者更高版本保存mat数据,可能出现MATLAB7无法打开的现象,根据其他博主的意思可能是因为路径有中文之类的,还有一种情况,是MATLAB18保存的mat数据版本不同,可以更改默认的保存版本,然…

matlab安装后不能打开怎么办,matlab7.0安装后打不开_matlab7.0安装后不能用

一、MATLAB出现errorstartingdesktop错误 1、首先在桌面上鼠标右键点击MATLAB7.0快捷方式!如下图所示 2、进入快捷方式属性界面,点击兼容性选项卡,如下图所示 3、勾选如下图的复选项!如下图所示 4、选择windows2000这个选择&#…

MATLAB打不开,选择licenses激活成功后还是要激活

2017国庆前还用matlab写了程序,现在想看看当时的程序,哪知道几个月不用,MATLAB打不开了,提示要激活。 图1.激活页面 因为之前都能用,那肯定是有许可证文件的,所以我选择了不适用Internet手动激活&#xff…

linux 平台下 MATLAB 打不开图形界面

遇到一个问题,在linux系统上打开MATLAB时界面(直接输入>>matlab)出现到一半就崩溃了。 提示: ** This crash report has been saved to disk as /home/hipeson/matlab_crash_dump.218342-1 ** MATLAB is exiting because…

win10系统matlab不能卸载不了,win10系统matlab打不开无法运行的方案

现如今,几乎家家户户都有一台电脑,当我们操作win10系统的过程中常常会碰到win10系统matlab打不开无法运行的问题,有什么好的办法去解决win10系统matlab打不开无法运行的问题该怎么处理?虽然解决方法很简单,但是大部分用…

matlab打不开怎么办,matlab打不开_matlab打不开怎么办 matleb打不开的修复方法

摘要 腾兴网为您分享:matlab打不开怎么办 matleb打不开的修复方法,桌面时钟,英语字典,学宝,小米钱包等软件知识,以及金山词霸离线版,渲染巨匠,家具大师,妙懂初中地理,大华…