IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 算法竞赛——数据结构 -> 正文阅读

[数据结构与算法]算法竞赛——数据结构

前言

本文介绍算法竞赛涉及到的数据结构。数据结构可以分为数据组织形式与数据操作两个部分,数据结构是为了通过将信息高效存储与管理来解决一些问题而存在的。

正文

1.栈

思想与功能

栈主要是提供一种后进先出的思想来帮助我们解决一些问题。

算法应用

例题1:表达式求值
例题2:单调栈

2.队列

思想与功能

队列(queue)是一种具有「先进入队列的元素一定先出队列」性质的表。由于该性质,队列通常也被称为先进先出(first in first out)表

算法应用

例题1:滑动窗口

3.双端队列

思想与功能

双端队列的特点是既可以在头部与尾部都可以插入和删除元素

算法应用

例题1:维修电路

4.循环队列

思想与功能

操作与队列一致,但是更为节省空间,如果队列不满的情况,可以在前方插入元素。

5.链表

思想功能

功能与数组类似,但是可以充分利用零碎的空间,高效的完成插入与删除操作,缺点是无法随机访问

算法应用

1.邻接表的实现

6.双向链表

思想功能

正常的链表只能向后遍历整个链,双向链表可以既可以向前遍历也可以向后遍历。

7.哈希表

思想功能

哈希表是又称散列表,一种以 “key-value” 形式存储数据的数据结构。所谓以 “key-value” 形式存储数据,是指任意的键值 key 都唯一对应到内存中的某个位置。只需要输入查找的键值,就可以快速地找到其对应的 value。可以把哈希表理解为一种高级的数组,这种数组的下标可以是很大的整数,浮点数,字符串甚至结构体。

8.并查集

思想功能

并查集是一种树形的数据结构,顾名思义,它用于处理一些不交集的 合并 及 查询 问题。 它支持两种操作:
查找(Find):确定某个元素处于哪个子集;
合并(Union):将两个子集合并成一个集合。

算法应用:

例题1:合并集合
例题2:食物链

9.堆

思想功能

堆是一棵树,其每个节点都有一个键值,且每个节点的键值都大于等于/小于等于其父亲的键值。堆主要支持的操作有:插入一个数、查询最小值、删除最小值、合并两个堆、减小一个元素的值。一些功能强大的堆(可并堆)还能(高效地)支持 merge 等操作。一些功能更强大的堆还支持可持久化,也就是对任意历史版本进行查询或者操作,产生新的版本。
在这里插入图片描述

10.块状数据结构

算法功能与思想:

分块的基本思想是,通过对原数据的适当划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复杂度。
1.块状数组:即把一个数组分为几个块,块内信息整体保存,若查询时遇到两边不完整的块直接暴力查询
例题1:教主的魔法
2.块状链表:块状链表就是一个链表,每个节点指向一个数组
例题1:POJ-2887
3.树分块:主要应用于莫队算法
4.SqrtTree
在这里插入图片描述

11.ST表

算法应用:

高效解决静态“区间按位和”、“区间按位或”、“区间 GCD”、”区间最值“的问题。
1.降雨量
2.RMQ

12.树状数组

算法应用:

线段树的简易版本,应用于单点修改区间查询的各类问题。
例题1:单点修改区间查询1

13.线段树

算法应用:

线段树可以在O(logN) 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。

14.李超线段树

用于解决一些线段树无法很好储存信息的问题

算法应用:

在这里插入图片描述

15.二叉搜索树(水平有限待更新)

算法应用:

主要为了解决动态第k大问题。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:44:21  更:2022-01-17 11:45:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/20 16:38:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码