算法与数据结构知识分享

Posted 前端酸柠檬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法与数据结构知识分享相关的知识,希望对你有一定的参考价值。

算法与数据结构重要吗?


数据结构和算法什么时候重要的呢?是在编写程序需要极致优化,压榨硬件的时候。在计算机刚刚出现和普及的那些年,硬件性能极弱,那时的都得压榨到极致才行。如果有不理解可以参考当年美国用来算导弹弹道的计算机和登月飞船上用于通讯导航的计算机的性能。它们的性能可能还不如你的手环。这个情况直到90年代之后才基本上得到解决。

之后,需要极致压榨性能的需求数量在整体工程需求这个范围内显得越来越少了。性能过剩在很多时候可以让程序员无视优化。你说二分查找是O(logn),但是在几百万个数据查一遍可能就比线性查找慢个几秒钟。平时你又能碰上几次上百万这种级别的数据呢?优化完了看不出收益,自然就不需要优化了,省下时间还不如多出点活。

那么当你遇到问题了,需要优化了,需要压榨性能了,怎么办呢?大部分时间还是不需要操心,因为总有一小撮人/公司帮你想好了,搞定了。你直接用就行了。比方说你觉得parse json会很消耗性能,想优化下,fastjson已经帮你搞定了;再比如你觉得数据处理单机太慢,需要并行,所以想搞搞调度和IO优化,spark,hive等已经帮你搞定了…… 学会他们也就是几周的事情而已。

再往后呢,可能出现一个情况,需要压榨性能,但是这个领域没人做过,没有现成的工具、框架和库。怎么办呢。这时你突然想自己撸,但是突然发现自己计算机组成原理、算法、数据结构完全不懂。而旁边的哥哥一拍胸脯大吼一声“放着我来!“。谁升职加薪大家心里就都明白了。

很多时候,数据结构算法一种“储备”,用于恰当的时刻。但在你真的遇到需求之前,真的很难用得上。你愿不愿意花精力为这个“光荣的时刻”做储备呢?做了,不一定能成;但是不做,一定成不了。

所以根据自己的所处的环境,从机会的角度去多思考思考呢?你在BAT遇到需要数据结构算法发挥作用的机会大,还是在小的创业公司大?如果碰巧你确认当前你的环境,这些数据结构算法没什么用,那么什么能力可能更容易发挥呢?如果坚持要走技术路线,是不是考虑换个技术更容易发挥的地方呢?




“个人认为,数据结构与算法将决定一个程序员的基础水平,同时也是编程思想的核心。要想成为一个高层次的程序员,至少要需要以下三个条件:1、能够熟练地选择和设计各种数据结构和算法。2、至少要能够熟练地掌握一门程序设计语言。3、熟知所涉及的相关应用领域的知识。当然,数据结构将贯穿程序设计始终。

数据结构与算法是程序的灵魂,是朴素的基础,学好它有有助于理解各种上层抽象。在没有充分学习和理解数据结构与算法的基础上去学习面向对象、设计模式,是无法真正体会这些上层抽象的真正意义的,最终可能会导致学之泛泛,用之泛泛。

而且现在的软件工程充斥着大量的过度设计、资源浪费,实际上已经到了硬件承受不了的地步了。学好数据结构和算法,能够从根本上去避免这些问题。web时代,各种云概念,海量数据,百万用户并发……归根到底都是数据结构与算法的比拼。

综上所述,个人认为数据结构与算法对一个程序员来说还是非常重要的。”



附送算法与数据结构资料:

1、【数据结构与算法】预告[www.hoh0.com]

链接:https://pan.baidu.com/s/1mySWAp9BIUuUzS1NhNSm8Q

提取码:aslq

复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享


2、算法基本概念[www.hoh0.com]

链接:https://pan.baidu.com/s/15zMmzJTNMenTR5pOZ3GgXQ

提取码:0o60 

复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享


3、排序算法-宋词记忆法[www.hoh0.com]

链接:https://pan.baidu.com/s/1W5kb04J2EYtKkHt2eU7r-Q

提取码:ktoe

复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享


4、选择排序[www.hoh0.com]

链接:https://pan.baidu.com/s/1--LKuctTUNRrkHq_WQwxcA

提取码:mv4k

复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享


5、选择排序_程序编写[www.hoh0.com]

链接:https://pan.baidu.com/s/1BRf4bSCzKRQlFJmUqqekCQ

提取码:wzt9

复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享


6选择排序大O分析-视频导出

链接:https://pan.baidu.com/s/1T7qqY5hHrxQl7fV1q3kqHw

提取码:na4x

复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享



资料来源网络,侵权请联系删除。

以上是关于算法与数据结构知识分享的主要内容,如果未能解决你的问题,请参考以下文章

计算机 数据结构与算法Python语言基础百度网盘分享

学习资料资源数据结构与算法进阶班

大话数据结构 PDF 下载资源分享

学习资料资源数据结构与算法Python语言基础

分享《深度学习与计算机视觉算法原理框架应用》《大数据架构详解从数据获取到深度学习》PDF数据集

数据挖掘小知识Science聚类算法分享