这是我参与「第五届青训营 」伴学笔记创作活动的第8天
导言
在计算机相关行业内,一般求职或者刷面经的时候都会看到数据结构和算法相关字眼。不管是何种岗位(前端,后端等),数据结构和算法貌似成为了衡量一个IT从业者技术水平的通用重要标准之一。这次着重从实践角度出发,分享在从业实践中我们有可能接触的数据结构和算法。算法和数据结构在我们的技术栈中无处不在,也与我们的日常开发息息相关,需要学习并精进。
为什么需要了解数据结构和算法
在日常的开发中,我们大部分用到的都是第三方库代码,属于自己的代码只占很少很少。调用第三方库能够极大地减轻我们开发难度,使得原本十分复杂的逻辑在自己的项目代码中变得十分简单。
但这些复杂的逻辑,大部分都与数据结构和算法密不可分。又因为前人已经造好了“轮子”,我们只需要方便地调包就能享受了这些方便,数据结构和算法的重要性就容易被忽视。
但作为专业的开发人员,缺少数据结构和算法相关知识,意味着将会丧失解决复杂问题的能力,即使基础业务做的再好,但失去了进一步发展的空间。
实践例子
Node.js扫描指定目录下所有文件
const fs = require('fs');
function scanDirectory(directoryPath) {
let allFiles = [];
function readDir(path) {
let files = fs.readdirSync(path);
files.forEach((file) => {
let fullPath = path + "/" + file;
let stats = fs.statSync(fullPath);
if (stats.isDirectory()) {
readDir(fullPath); #递归,搜索到当前文件夹中存在文件夹时,对文件夹中的文件夹进行搜索(DFS)
} else {
allFiles.push(fullPath);
}
});
}
readDir(directoryPath);
return allFiles;
这里运用了递归完成了DFS(深度搜索算法)