008 数据结构和算法 简介

左老师将算法分为硬计算(精确求解,复杂度可能高,程序员必备,面试常考)和软计算(逼近求解,时间可控,算法工程师需要)两类。数据结构则宏观地分为连续结构和跳转结构,所有数据结构都是这两者的组合。

Posted by Hilda on March 18, 2025

概览:(下面的“我”指左老师本人)

说一个我觉得比较有趣、有用的算法分类

硬计算类算法、软计算类算法 注意:这两个名词都不是计算机科学或算法中的标准术语

那为啥要提这个呢?因为很有现实意义。

硬计算类算法:精确求解。但是某些问题使用硬计算类的算法,可能会让计算的复杂度较高 大厂算法和数据结构笔试、面试题、acm比赛或者和acm形式类似的比赛,考察的都是硬计算类算法。

软计算类算法:更注重逼近解决问题,而不是精确求解。计算时间可控 比如:模糊逻辑、神经网络、进化计算、概率理论、混沌理论、支持向量机、群体智能

硬计算类算法是所有程序员岗位都会考、任何写代码的工作都会用到的。前端、后端、架构、算法所有岗位都要用到。 但是算法工程师除了掌握硬计算类的算法之外,还需要掌握软计算类的算法。


(下面的“我”指左老师本人)

说一个我觉得比较宏观的数据结构分类

连续结构

跳转结构

任何数据结构都一定是这两个结构拼出来的!没有例外!

数据结构太多了,从链表、队列、栈,到可持久化线段树、树链剖分、后缀数组等等结构

后面的课都会讲到!