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

news/2025/10/5 10:55:40/文章来源:https://www.cnblogs.com/johnnyzen/p/19126354

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 推荐资源

在线资源

  • 数据结构 && 基础算法 - 牛客网
  • https://www.nowcoder.com/

image

  • VisualGo
  • 作者: 新加坡国立大学 / 核心特点: 通过动画可视化数据结构和算法
  • https://visualgo.net/zh

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
  • https://github.com/liuyubobobo/Play-with-Algorithms

推荐书籍

X 参考文献

  • 数据结构与算法 - 菜鸟教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于点标注的弱监督目标检测方法研究 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

黑河北京网站建设设计公司的名字

亚马逊云科技近日在纽约峰会上宣布 Amazon Elastic Compute Cloud(EC2)P5 实例正式可用。这是一款下一代 GPU 实例,由最新的英伟达 H100 Tensor Core GPU 提供支持,可以满足客户在运行人工智能、机器学习和高性能计算工作负载时对高性能和高扩展性的需求…

怎么做网站app一流的聊城做网站公司

本文地址http://www.cnblogs.com/Bond/p/3972854.html 最近一直做移动端,没和IE6打交道了,瞬间感觉世界变美好了。移动端虽然还是各种坑,但是比起修复IE6那还是轻松多了,移动端很多效果可以用CSS3来做,感觉一切都和谐…

图论new

边双连通分量 #include<bits/stdc++.h> using namespace std; const int N = 5e5+5; int n, m, cnt, ans, dfn[N], low[N]; //dfn记录dfs序,low表示这个点除树边外能连到最浅 vector<int> mp[N], mp2[N]…

2025夹丝玻璃厂家最新企业品牌推荐排行榜,艺术夹丝玻璃,淋浴房夹丝玻璃,极简门夹丝玻璃,金属夹丝玻璃公司推荐!

在夹丝玻璃行业快速发展的当下,市场上的源头厂家数量不断增多,然而行业也面临着诸多问题。一方面,部分厂家缺乏核心技术,生产的夹丝玻璃在安全性、耐用性等方面难以满足市场需求,产品质量参差不齐;另一方面,一些…

斜率优化dp复习笔记

$$ f_j+sum_isum_j-sum_j^2>f_l+sum_isum_l-sum_l^2 \Rightarrow \frac{(f_j-sum_j^2)-(sum_l-sum_l^2)}{-sum_j-(-sum_l)}>sum_i $$那么点集就是 $(-sum_x,f_x-sum_x^2)$。那么对于当前点 $i$,所有斜率 $\leq …

掌握形式验证,护航芯片安全

在 IC 设计的世界里,任何一个微小错误都可能引发重大后果。形式验证(Formal Verification),以其数学证明的方式,成为确保设计可靠性与安全性的强大盾牌。 核心基础与优势解析 1、精准规范,明确预期行为 一切始于…

STL-list - 实践

STL-list - 实践2025-10-05 10:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

2025橡胶软接头厂家最新企业品牌推荐排行榜,法兰橡胶软接头,可曲挠,挠性,KXT,耐油,EPDM,耐腐蚀,三元乙丙橡胶软接头,橡胶柔性软接头公司推荐!

在橡胶软接头行业,质量管控与服务体系的缺失已成为制约产业升级的关键瓶颈。具体表现为: 产品质量两极分化:部分企业为压缩成本,违规采用再生胶、回收料等劣质原料,导致产品出现密封性失效、老化周期缩短等问题,…

整体二分笔记

整体二分 本来感觉挺神秘的一个东西, 学完了似乎没有多难, 放几个板子随便写写吧(今天数学不想做题) 从最最最最人尽皆知的区间第 \(k\) 大问题开始吧 引入 如果我想问你一个序列中的区间的第 \(k\) 大,你会如何?…

如何自做自己的网站网络设计开题报告

抽象节点这个特性自小程序基础库版本 1.9.6 开始支持。在组件中使用抽象节点有时&#xff0c;自定义组件模板中的一些节点&#xff0c;其对应的自定义组件不是由自定义组件本身确定的&#xff0c;而是自定义组件的调用者确定的。这时可以把这个节点声明为“抽象节点”。例如&am…

有什么网站可以做投票邯郸菜鸟网站建设

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 一根X米长的树木&#xff0c;伐木工切割成不同长度的木材后进行交易&#xff0c;交易价格为每根木头长度的乘积。规定切割后的每根木头长度都为正整数,也可以不切割&#xff0c;直接拿整根树木进行交易。请问伐木工如…

响应网官方网站网站界面风格设计

1. 今日摸鱼计划 今天来学习一下ADC的原理&#xff0c;然后把ADC给实现 ADC芯片:ADC128S102 视频&#xff1a; 18A_基于SPI接口的ADC芯片功能和接口时序介绍_哔哩哔哩_bilibili 18B_使用线性序列机思路分析SPI接口的ADC芯片接口时序_哔哩哔哩_bilibili 18C_基于线性序列机的S…

量化投资 —— 实践

量化投资 —— 实践地址: https://item.taobao.com/item.htm?id=898078161839&mi_id=0000bSMU6-qva9mG_nEYyyLOcfGeJ5-tgwvwKtjY8IHE980&pvid=4580fb7a-c699-4f97-a5c0-8c810fa24035&scm=1007.40986.449…

详细介绍:性能优化 - 案例篇:缓存_Guava#LoadingCache设计

详细介绍:性能优化 - 案例篇:缓存_Guava#LoadingCache设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

2025年X射线管厂家最新企业品牌推荐排行榜,工业用金属陶瓷,波长色散荧光分析,应力衍射分析,管板角焊缝,轮胎检测,辐照,固定阳极波纹陶瓷,测厚,食品检测 X 射线管公司推荐

在工业无损检测领域,X 射线管作为核心元件,其质量与性能直接影响检测结果的准确性和可靠性,对国防、石油、电力、汽车零部件等关键行业的发展至关重要。当前,市场上 X 射线管厂家数量众多,产品质量参差不齐,部分…

AtCoder Beginner Contest 400

AT_abc400_d [ABC400D] Takahashi the Wall Breaker 一次踢两步也转移一下,直接搜 E - Ringos Favorite Numbers 3

网站托管服务方案网站建设办公软件销售技巧

目录 1、进程的虚拟内存分区与小于0x10000的小地址内存区 1.1、进程的虚拟内存分区 1.2、小于0x10000的小地址内存区 2、保存线程上下文的CONTEXT结构体 3、从汇编代码角度去理解多线程运行过程的典型实例 4、调用TerminateThread强制结束线程会导致线程中的资源没有释放…

2025 年北京档案存放公司 升职猫档案服务平台:16 年老牌机构的合规服务与高效解决方案解析

档案管理作为衔接个人发展与社会管理的关键环节,其规范性与便捷性直接影响考公、考研、落户、评职称等重要人生节点。随着 2025 年档案管理服务市场规模迈向 2000 亿元,数字化转型与异地办事需求持续升温,政策推动下…

设计一个企业网站大概多少钱创新的南昌网站制作

一、结构体 结构体(struct)可以理解为用户自定义的特殊的复合的“数据类型”&#xff1b; 1. 结构体变量的定义和初始化 定义结构体变量的方式&#xff1a; 先声明结构体类型再定义变量名 在声明类型的同时定义变量 // 结构体类型的定义 struct stu {char name[50];int age;…