• 01-数据结构和算法入门


    数据结构和算法入门

    什么是数据结构?

    数据结构一般泛指数据的逻辑结构和存储结构,独立于具体编程语言。例如,我们在浏览一个网页时,看到的页面布局结构。拿到一本书时,看到的书的目录结构。打开手机上的地图软件,看到的图结构等等都和我们所说的数据结构有关系。

    什么是数据算法?

    在编程领域中,可以将程序理解为数据结构+算法。算法就是操作特定结构数据的方法或技巧,具备正确性,可行性,有穷性,输入,输出等特征。例如对数据的查找,排序,运算等都会涉及到具体算法的应用。

    数据结构和算法是什么关系?

    数据结构和算法是相辅相成的,数据结构服务于算法,算法作用于数据结构。

    为什么要学习数据结构和算法?

    让“计算”更加的高效和低耗。一般越是注重技术的公司(尤其是大型的科技公司),越会注重考察数据结构与算法这类基础知识。因为相比短期能力,他们更看中你的长期潜力。

    学习数据结构和算法可以帮助到我们什么?

    学习数据结构和算法可以更加有效的帮我们:

    1. 建立时间复杂度、空间复杂度意识,写出高质量的代码。
    2. 设计更好基础架构,提升编程技能,训练结构化思维的有效手段。

    总之:学习数据结构和算法,可以有效帮助我们,在设计“高效,低耗”的软件系统时,起到很大的指导作用。如同具备九阳神功护体,见招拆招,对各种技术进行灵活应用。

    如何学习数据结构和算法?

    在学习数据结构和算法的过程中,首先要对这个学科有一个整体的认识,比方说数据结构和算法这门课会涉及到哪些知识点,哪些是重点等,还有就是这些知识点的「来历」、「自身的特点」、「适合解决的问题」以及「实际的应用场景」。其次要基于大纲进行刻意的练习,我们要练习缺陷,练习弱点,练习不舒服,不爽,枯燥的地方。最后学会分享,在分享的过程中及时获取反馈和加强。

    什么是数据的逻辑结构?

    数据的逻辑结构描述的是数据元素之间的逻辑关系,与数据的存储无关,是独立于计算机的一种结构。数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。具体可分为线性结构(栈,队列),非线性结构(集合,树形结构,图结构)。

    什么是数据的存储结构

    数据的存储结构是数据元素以及其关系在计算机存储器内的表示,是逻辑结构用计算机语言的实现。例如顺序存储结构(位置相邻)、链状存储结构(指针关联)。

    什么是复杂度分析?

    复杂度分析几乎占了数据结构和算法这门课的半壁江山,是数据结构和算法学习的精髓,它告诉我们在设计一个系统时,如何度量资源的消耗,运行的效率。它探讨的是一种心法,只有我们学会了分析问题的方式,才能见招拆招,做到无招胜有招。

    如何度量程序的复杂度?

    那么我们应该如何去度量程序中算法的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。

    1. 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
    2. 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。
      因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,有的时候时间和空间却又是「鱼和熊掌」,不可兼得的,那么我们就需要从中去取一个平衡点。

    总结(Summary)

  • 相关阅读:
    4.2.2 设置VMware虚拟机
    【数据治理】Atlas2.2.0独立部署-单节点
    【工具】利用ffmpeg将网页中的.m3u8视频文件转化为.mp4格式
    iOS Facebook SDK 安装
    【C++】string类(介绍、常用接口)
    mysql事务详解
    Java集合基础知识点系统性总结篇
    第二章 进程与线程 十八、(生产者-消费者问题),(多生产者-多消费者问题),(抽烟者问题),(读者-写者问题),(哲学家就餐问题)
    LeetCode438.找到字符串中所有字母异位词
    kafka
  • 原文地址:https://blog.csdn.net/maitian_2008/article/details/127564349