前端-数据结构与算法| 青训营笔记

80 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第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(深度搜索算法)