数据结构和算法:如何学好数据结构和算法?

  • 确定学习目标
  • 制定学习路线
  • 明确学习要点
    • 不要死记硬背算法实现,你应该试着去理解不同的数据结构、算法的原理是什么,是如何解决不同的问题的
    • 分析时间和空间复杂度、优点、缺点以及适用于解决什么问题,什么情况下更适合采用哪种算法和数据结构
    • 算法思想才是更重要的,比如:分而治之、动态规划、贪婪算法等,学习算法思想可以帮你更好地理解算法之间的快慢差异,并学会在算法对时间和空间的使用上做出平衡
    • 尝试把数据结构图形化,视觉化
    • 一定要自己动手实现一遍
  • 搜集学习资料
    • 书籍
      • 数据结构与算法分析:C 语言描述
      • 算法导论
      • 算法概论(Algorithms)
      • 剑指 Offer
    • 看算法相关源码
      • YYCache
      • IGListKit
      • React.js
    • 可视化网站
      • http://visualgo.net
  • 理解练习、编程实践
    • 用 C/C++/Swift 把所有经典算法写一遍,先尝试自己把这些数据结构实现一遍,然后再模仿优秀的源码
    • 刷题
      • leetCode
      • 在 google 上搜索“某个数据结构 + ACM”,然后做题目
      • 剑指Offer_编程题_牛客网
    • 在实际工作中应用所学到的算法知识
  • 积极交流,获取反馈
    • 加入算法学习社区,相互鼓励学习

参考资料

  • 冉文杰的算法学习笔记:nonstriater/Learn-Algorithms
  • 怎么学好数据结构? - 知乎
  • 如何学习数据结构? - 知乎
  • 怎样学算法? - 知乎
  • 算法到底应该怎么学? - 知乎

如果你也喜欢交流技术、喜欢阅读、积极践行,欢迎关注我的公众号:祥龙Shannon写字的地方,一起成长。

数据结构和算法:如何学好数据结构和算法?_第1张图片
qrcode_for_gh_cc686217be41_344.jpg

你可能感兴趣的:(数据结构和算法:如何学好数据结构和算法?)