JavaScript 数据结构与算法 — 前面的话

本篇随笔不会有任何关于前端的知识点!

从事前端工作快 8 年时间了,最近终于有空来梳理下前端的相关知识了。本不想写这篇文章的,直接进入主题,直接分享学习的数据结构与算法。但是,我总觉得这样太突兀了,万事万物还是要有个开头为好。下面的内容不是序言,也不是忠告,而是对自己的一种提醒:你煞有介事的敲锣打鼓的开始了,可别轻易断更了!诸君嫌我太啰嗦的话,可以直接跳过本篇内容。

说起前端,JavaScript 肯定是绕不过去的。作为前端开发者,掌握 JavaScript 语言是必不可少的。JavaScript 不仅用于前端开发,也适应于后端开发,还能用于移动领域与桌面端开发,甚至它还能用于嵌入式设备及物联网(IoT)设备。如你所见,到处都可以见到 JavaScript 的身影。

学习一门语言,它们的官方文档只会给你列出这门语言的基本用法,以及该语言的最基本的数据结构用法(比如数组、对象)。文档中从不会讲解更深层次的数据结构及算法相关知识,因为这些东西不属于某一种具体的语言。数据结构是工具,决定了数据的存储方式和操作效率。算法是方法,决定了问题的解决步骤和优化空间。两者结合,可以解决从简单数据操作到复杂系统设计的各类问题,是程序员的核心竞争力。

“数据结构和算法不是 C、Java 这类语言需要处理的吗......”

我们有时可能会听到上面的话,但是,实际上 JavaScript 比 C、Java 这些语言更适合用来学习数据结构和算法,因为它足够简单,我们学习新起来也更容易,也更容易获得成就感。

为什么必须学习数据结构和算法?

AI 给出的理由足够充分了:

性能优化

直接决定程序能否处理大规模数据(如 10 万条数据排序用冒泡排序需 10 秒,快速排序仅需 1 毫秒)。

问题抽象能力

将现实问题转化为计算机可处理的模型(如用图表示社交网络中的好友关系)。

代码质量提升

避免写出时间复杂度为 O(n²) 的低效代码(如双重循环嵌套)。

应对复杂系统

设计高并发、低延迟的系统(如 Redis 用跳表实现有序集合)。

通过技术面试

国内外大厂面试必考题目(如 LeetCode 高频题)。

后续计划

数据结构

  • 链表
  • 队列
  • 集合
  • 字典
  • 散列表
  • 二叉堆

算法

  • 递归算法
  • 排序算法
  • 搜索算法
  • 动态规划
  • 贪心算法
  • 回溯算法
  • 最短路径算法
  • 最小生成树
  • 堆排序算法
  • AVL 树
  • 红黑树
  • ......
posted @ 2025-03-27 18:37  老甄Home  阅读(8)  评论(0)    收藏  举报