zoukankan      html  css  js  c++  java
  • 学好数据结构和算法 —— 开篇

    很多程序员对数据结构和算法并不熟悉,觉得在日常工作中用处并不大而且还比较难学,有时间学数据结构与算法,还不如对框架和Api熟练来的实在。确实,作为业务开发人员不懂算法仍然可以很快很好地完成开发任务,这是因为大部分开发语言底层都基于基本数据结构帮我们封装好了,我们拿来就可以用,而且性能也比较好。但是即便不需要自己去写底层框架,如果知道更多原理也能知道哪种数据结构是适合什么样的场景。随着近几年大数据、AI的兴起,特别是大公司越来越重视算法工程师和大数据处理技术的积累,没有扎实的数据结构和算法基础,程序员很容易遇到天花板。

    1、什么是数据结构和算法

    数据结构

    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。(摘自百度百科)

    比如:图书馆里书籍按照计算机、医学、经济学等不同学科分类,将不同分类分别放在不同的书架,然后计算机类书架里又有计算机网络、操作系统、编程语言……医学类里有临床医学、解剖等,这种按不同分类摆放的方式就是书籍这类数据存放的结构。

    算法

    算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。(摘自百度百科)

    比如:我要查找《Java从入门到放弃》这本书,有很多种方法:

    1. 一个个书架找过去,直到找到了为止;
    2. 先按计算机大类找,再从计算机下面的编程语言里去找

    这两种方法就是两种不同的算法。

    数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。脱离了数据结构只谈算法没有实际意义,这就是为什么谈算法的时候总得要有个具体的数据结构作为基础。

    2、为什么要学数据结构和算法

    • 算法解决的是少和快的问题,怎么样使用最少的空间和最快的速度来处理数据,特别是海量数据时代,如何高效快速地进行数据处理显得特别重要,这也是BAT大厂注重算法的原因;
    • 很多框架使用了很多的数据结构和算法的设计思想,针对不同场景有不同的优化,如果不懂数据结构和算法就很难理解它的设计思想;
    • 算法是很多大厂面试必备技能;
    • 如果不懂数据结构和算法就没有时间复杂度和空间复杂度的概念,也就不知道怎么评估一段代码性能;
    • 运用合适的数据结构和算法可以写出性能高的代码,并且可以预估代码的性能瓶颈;
    • 学习算法可以锻炼和丰富逻辑思维,写出逼格更高的代码
    • ……

    3、数据结构和算法学什么

    1、学习内容

    2、掌握好复杂度分析和基本数据结构和算法,打好基础

    3、多思考多动手多练习

  • 相关阅读:
    C# 如何生成CHM帮助文件
    Excel导出问题
    JS一些类实现方式的性能研究
    Date对象的一些相关函数
    ECMASCRIPT5新特性(转载)
    javascript apo
    $linq A Javascript LINQ library
    javascript 编程规范
    flash 工程师的标准
    flash 弹出 网页
  • 原文地址:https://www.cnblogs.com/mr-yang-localhost/p/9807556.html
Copyright © 2011-2022 走看看