首页 > 编程知识 正文

算法与数据结构总结,数据结构报告总结

时间:2023-05-05 07:38:25 阅读:24751 作者:3115

前几天,强大的樱桃介绍了什么是算法。

说到算法,不能不说数据结构。 今天什么是数据结构? 程序员怎么学好数据结构?

当我们介绍算法时,计算机中的算法本质上是一系列程序指令,用以解决特定的运算和逻辑问题。

数据结构是指数据的组织、管理和存储格式。简单来说,数据结构是执行算法的“素材”。

俗话说,巧匠使无米煮饭变得困难。 算法就像聪明勤奋的女主人,数据结构是做饭用的柴米油盐。

数据结构有什么构成方法?

首先,线性结构

但是,如果你是一个有一点编程基础的伙伴,你一定知道数组。 这是典型的线性数据结构。

除序列外,链表也是重要的数据结构。 Ava集合框架中的LinkList类。 底层实现是链表。

可以基于数组或链表封装两种类型的数据结构:。 其特点是先进的后起。 另一个是队列,特点是先进先出。 堆栈和队列可以满足各种特定需求。

其次,

树是一对多的数据结构,天生最适合搜索。 Java集合框架具有一个TreeMap类,用于存储键-值映射,它不仅可以有效地搜索,还保证了键的排序。 其底边的实现是一种特殊的二叉树——红黑树。

另外,我们的操作系统中的文件索引大多通过b树来实现。

我们常用的MySQL数据库是常用b树的索引。

其次,

图是多对多数据结构,非常适合表示许多对象之间的复杂关系。 每个人一定都坐过地铁。 一个城市的地铁交通线路,车站和车站之间形成的联系就是图的结构。

群体之间有着复杂的人际关系,他们形成的关系网也是图的结构。

基于图,产生了许多实用的算法。 例如,在百度地图或高德地图上进行导航时,背后是图的最短路径算法。

最后,复合数据结构

例如,我们常用的哈希表是数组和链表的组合。

还有一种有趣的数据结构,称为跳转表。 它基于常规链表,添加了很多索引层。 Redis中集合sortedSet背后的数据结构是跳表。

复合数据结构通常是将多个基本数据结构组合在一起的自然优点,且在特定场景中非常有用。

这是数据结构的几种构成方法。 请保存此图。 鉴于篇幅所限,图中列举的具体数据结构只是最常用的几种,并不是全部。

那么,我们该如何学好数据结构呢?

就像学习算法一样,我们也可以通过看书和看网络上的视频课程来了解常用的数据结构原理。

入门书推荐简单的比尔老师《大话数据结构》和我自己出版的《漫画算法》系列。

高级别书籍建议查看《算法4》、《算法导论》。

上课的话,我推荐极客时间bzdsmt老师的《数据结构与算法之美》。 非常全面的故事。

另外,也可以用手写代码,自己实现数据结构的基本功能。 这令人印象深刻。

像红黑树这样复杂的数据结构可能很难马上直接写出来。 从简单的事情开始吧。 例如,尝试实现链表的节点添加和节点删除功能,如实现二叉树的前序、中序、后序遍历等。

最后,一些网站提供可视化数据结构的演示。 非常生动。 伙伴们请去这些网站看看。 例如,一个名为visuAlgo的网站有丰富的案例。

我关注过任何算法和数据结构的教育网站,但也欢迎写入评论区。

那么,这里介绍一下数据结构。 如果您认为这篇文章对您有帮助,请订购http://www.Sina.com/http://www.Sina.com /。 谢谢~

最近,樱桃离开舒适区,正要进入B站录制程序员相关的视频。在看一键三联,谢谢支持哦~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。