[算法/数据结构] 数据结构与算法

0 序

  • 工作这么些年,数据结构、及其基础算法,在工作实践中仍时长闪现。为此,此篇进行一定的归纳总结,并持续更新完善。

1 概述:数据结构与算法

image

简介

  • 数据结构Data Structure)是计算机中存储、组织数据的方式。
  • 数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素集合
  • 它包含3方面的内容: 逻辑关系存储关系操作
  • 不同种类的数据结构适合于不同种类的应用场景,而部分甚至专门用于特定的作业任务。

例如,计算机网络依赖于路由表运作,B 树高度适用于数据库的封装。

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

随着应用程序变得越来越复杂和数据越来越丰富,几百万、几十亿甚至几百亿的数据就会出现,对这么大对数据进行搜索、插入或者排序等的操作就越来越慢,数据结构就是用来解决这些问题的。

常见的数据结构

  • (Stack):栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。
  • 队列(Queue):队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。
  • 数组(Array):数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。
  • 链表(Linked List):链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。
  • (Tree):树是典型的非线性结构,它是包括,2 个结点的有穷集合 K。
  • (Graph):图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。
  • (Heap):堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。
  • 散列表(Hash table):散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。

常用算法

  • 数据结构研究的内容:就是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法逻辑结构组织好的数据存储到计算机的存储器里。

  • 算法研究的目的: 为了更有效的处理数据,提高数据运算效率。

  • 数据的运算是定义在数据的逻辑结构上,但运算的具体实现要在存储结构上进行。一般有以下几种常用运算

  • 检索:检索就是在数据结构里查找满足一定条件的节点。一般是给定一个某字段的值,找具有该字段值的节点。
  • 插入:往数据结构中增加新的节点。
  • 删除:把指定的结点从数据结构中去掉。
  • 更新:改变指定节点的一个或多个字段的值。
  • 排序:把节点按某种指定的顺序重新排列。例如递增或递减。

数据结构、算法的关系

  • 数据结构:指在计算机中存储和组织数据的方式

它描述了数据之间的逻辑关系和物理存储结构。
常见的数据结构包括数组、链表、栈、队列、树、图等。
数据结构提供了一种高效存储、访问和操作数据的方法。

  • 算法:解决问题的一系列步骤或操作

它描述了如何通过输入数据来获得期望的输出结果。
常见的算法设计技术包括分治法动态规划贪心算法等。
算法的目标是找到解决问题的最优方法,使问题能够以最高效的方式被解决。

  • 数据结构算法是相辅相成的。
  • 数据结构为算法提供了执行的基础,而算法的设计依赖于对数据结构的选择和使用
  • 一个有效的算法需要基于适当的数据结构来操作数据,而合适的数据结构也需要相应的算法来操作和管理数据。
  • 简言之,算法是最终目标、手段、途径,数据结构是工具、基础。(个人鄙见)

Y 推荐资源

在线资源

  • 数据结构 && 基础算法 - 牛客网

image

  • VisualGo

image

image

  • PAT - 杭州百腾教育科技
  • PAT 计算机程序设计能力考试

https://www.patest.cn/home

计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准。

考试遵循统一考试大纲、统一考试命题、统一考试评分标准、统一颁发证书的原则,由考试中心负责考试的组织、日常管理和具体实施工作。每年分春、秋、冬季组织3次统一考试,大约分别在每年2-3月、8-9月、11-12月举行。每场考试分三个难度级别:顶级(Top Level)、甲级(Advanced Level)、乙级(Basic Level)。

image

配套课程 : https://www.patest.cn/help/course

image

  • PTA 程序设计类实验辅助教学平台

https://pintia.cn/home

image

image

  • Play-with-Algorithms

推荐书籍

X 参考文献

posted @ 2025-10-05 10:48  千千寰宇  阅读(11)  评论(0)    收藏  举报