• 如何抓中重点,系统高效地学习数据结构与算法?


    前言


    刚开始学习数据结构与算法的时候不知道该如何下手,通过一段时间的学习总结了一套自己学习的学习方法。如果正在阅读的您看到有不合理的地方,欢迎指出来,大家一块学习。

    是什么?


    数据结构:一组数据的存储结构
    算法:操作数据的一组方法
    数据结构是为算法服务的,算法是要操作用在特定数据结构上的。

    学什么?


    在这之前我们先看一张图:数据结构与算法大全图示:

    在这里插入图片描述


    图中有很多的数据结构与算法,有基础的、常用的、高级的等等,但是对于初学者我认为没必要胡子眉毛一把抓,首先需要学会、学通基础的、切常用的,那么再去接触高级的也就相对容易上手了。所以对于要学什么,总结了两点:

    (1)效率和资源消耗的衡量度 -- 复杂度分析
    (2)最常用、最基础组的20个数据结构与算法,学习他们的:“来历”、“特点”、“适合解决什么问题”和“实际应用场景”
    10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
    10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

    怎么学?


    (1)边学变练,每周花1~2小时集中攻关最近几天自己学习的数据结构与算法,全部写出来,多练几边,重在理解,不能死记硬背,背下来的东西很容易忘记。
    (2)多思考、多交流。独立思想其中的逻辑与思想,有问题多跟专业的算法同学/同事交流,获取我们之前的理解本身就有问题呢。
    (3)自我激励,每学习一个知识点做一篇学习笔记。
    (4)沉下心学不要浮躁,先把最基础的掌握,然后在去追求更高层次的。

    总结


    对于上面总结的最基础常用的10个数据结构和算法有需要补充的同学欢迎留言。

  • 相关阅读:
    华为交换技术:BGP基础实验
    回溯算法题型总结
    应用程序会不会导致linux系统崩溃死机?
    SpringCloud-Rest微服务工程的构建
    ajax(Springmvc实现和注册提示效果)
    索引——MySQL
    Stable Diffusion绘画
    神经网络 样本不平衡,神经网络结果不稳定
    第18章 SpringCloud生态(三)
    【技术积累】软件工程中的测试驱动开发【一】
  • 原文地址:https://blog.csdn.net/lijunhcn/article/details/132617146