zoukankan      html  css  js  c++  java
  • 我的算法与数据结构阶段性总结

    • 为什么一定要学习算法和数据结构?
      1. 写出高性能并且优雅的代码
      2. 不会算法和数据结构,你对你的代码是好还是坏,为什么好为什么坏都不了解的,也就是你不知道你的代码的时间复杂度和空间复杂度,那怎么会好呢?
      3. 经常使用的MySQL 的索引使用的是B+树,那么什么是B+树呢?使用的Redis的集合里面的实现是怎么实现的呢? 使用的是跳表实现的,那什么是跳表呢? 这些都是数据结构的数据存储知识

    所以,你如果不掌握和熟悉算法和数据结构的话,你对你的代码的好与坏是不知道的,同时对项目数据量变大以及复杂度增加时,没有预估,没有预估怎么会做到防范于未然,做好项目呢。还有经常使用的中间件,为什么他们那么高效,都是由于他们在存储结构上面经过trade-off 以后选择了适合的数据结构,才能实现这么高效的运行。

    • 为什么看了相关书籍,也知道大概的具体实现,还是没有掌握?
      1. 看了两边《大话数据结构》还是不不会实现基本的数据结构,以及使用基本的数据结构应用到自己的算法当中
      2. 看书是一回事,看完以后是否真正理解了,转化成自己的知识了么?我目前的情况是并没有,只是了解,没有转化为自己的认识和理解,自己可以使用笔和纸,将过程画出来,再去实现,因为只有你了解了过程,才有可能实现,这就是我们为什么我们有时候需要写伪代码
      3. 练习,画图,动手,思考,动手,反馈,动手。多动手,多练习,编程是一个实践性非常强的学科,只看书是学不会写代码的。

    • 那到底应该怎么学习呢?
      1. 了解每种数据结构的优点和缺点,以及产生背景以及我们可以用这个数据结构做什么?
      2. 通过画图的方式将算法的演变过程或者数据结构的存储方式画出来,推演一番
      3. 动手将画出的流程和存储方式进行实现

    曾经我也是那个学这个有啥用呢?我把功能实现好了不就行了,后来发现自己错了。

  • 相关阅读:
    常见字符编码扫盲(UTF,Unicode, GB2312) 四
    Ogre 实用技巧 四
    CEGUI中文显示问题的解决方法 四
    大幅革新 AMD下一代图形产品前瞻 四
    力争上游 ——我眼中的“计算机产业链” 四
    养成 SQL SERVER 的好习惯 四
    说说 Windows 中的中文字体 四
    Unicode字符集和多字节字符集关系 四
    各种电影 四
    [projectEuler.net]12
  • 原文地址:https://www.cnblogs.com/zhangpengfei5945/p/12855449.html
Copyright © 2011-2022 走看看