| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 算法竞赛——数据结构 -> 正文阅读 |
|
[数据结构与算法]算法竞赛——数据结构 |
前言本文介绍算法竞赛涉及到的数据结构。数据结构可以分为数据组织形式与数据操作两个部分,数据结构是为了通过将信息高效存储与管理来解决一些问题而存在的。 正文1.栈思想与功能栈主要是提供一种后进先出的思想来帮助我们解决一些问题。 算法应用2.队列思想与功能队列(queue)是一种具有「先进入队列的元素一定先出队列」性质的表。由于该性质,队列通常也被称为先进先出(first in first out)表 算法应用例题1:滑动窗口 3.双端队列思想与功能双端队列的特点是既可以在头部与尾部都可以插入和删除元素 算法应用例题1:维修电路 4.循环队列思想与功能操作与队列一致,但是更为节省空间,如果队列不满的情况,可以在前方插入元素。 5.链表思想功能功能与数组类似,但是可以充分利用零碎的空间,高效的完成插入与删除操作,缺点是无法随机访问 算法应用1.邻接表的实现 6.双向链表思想功能正常的链表只能向后遍历整个链,双向链表可以既可以向前遍历也可以向后遍历。 7.哈希表思想功能哈希表是又称散列表,一种以 “key-value” 形式存储数据的数据结构。所谓以 “key-value” 形式存储数据,是指任意的键值 key 都唯一对应到内存中的某个位置。只需要输入查找的键值,就可以快速地找到其对应的 value。可以把哈希表理解为一种高级的数组,这种数组的下标可以是很大的整数,浮点数,字符串甚至结构体。 8.并查集思想功能并查集是一种树形的数据结构,顾名思义,它用于处理一些不交集的 合并 及 查询 问题。 它支持两种操作: 算法应用:9.堆思想功能堆是一棵树,其每个节点都有一个键值,且每个节点的键值都大于等于/小于等于其父亲的键值。堆主要支持的操作有:插入一个数、查询最小值、删除最小值、合并两个堆、减小一个元素的值。一些功能强大的堆(可并堆)还能(高效地)支持 merge 等操作。一些功能更强大的堆还支持可持久化,也就是对任意历史版本进行查询或者操作,产生新的版本。 10.块状数据结构算法功能与思想:分块的基本思想是,通过对原数据的适当划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复杂度。 11.ST表算法应用:高效解决静态“区间按位和”、“区间按位或”、“区间 GCD”、”区间最值“的问题。 12.树状数组算法应用:线段树的简易版本,应用于单点修改区间查询的各类问题。 13.线段树算法应用:线段树可以在O(logN) 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 14.李超线段树用于解决一些线段树无法很好储存信息的问题 算法应用:15.二叉搜索树(水平有限待更新)算法应用:主要为了解决动态第k大问题。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 19:26:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |