稀疏数组 ps:记录韩顺平数据结构与算法 一、需求分析 因为二维数组的很多值是默认值0,因此记录了很多没有意义的数据,可采用稀疏数组解决此问题。 二、基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1)记录数组一共有几行几列,有多 ...
分类:
编程语言 时间:
2020-07-28 13:57:53
阅读次数:
69
转自: 微信公众号 "Java3y" 这里说一下 Java 中的各种 O(bject)。 有哪些 O? 这些 O 有很多衍生出的命名,比如 VO、DO、BO,这里我们把常见的 O 列举出来,然后一一解释。 以下内容参考阿里巴巴 Java 开发手册,如果有需要可以在微信公众号「01 二进制」后台回复「 ...
分类:
其他好文 时间:
2020-07-28 09:58:28
阅读次数:
94
题目链接 uoj#182 前言 刚看到题以为是毒瘤数据结构,没想到是毒瘤多项式...... 题意 给定一个$n$个元素的序列{\(a_n\)},有$2$种操作: $1.$ 给序列中的每个数加$x$ $2.$ 将序列中的每个数变为其逆元(保证此时每个数存在逆元) 现在有$m$次操作,求每次操作后序列的 ...
分类:
其他好文 时间:
2020-07-28 00:29:28
阅读次数:
88
数据结构有几类:线性结构、链表、Hash散列 1.线性结构:在内存中存放的顺序是连续的可以节约空间,可以通过索引查找,优点:查询数据很快、缺点:每次修改删除都有内存的移动会慢。 2.链表:链表结构在内存中是不连续的,不可以通过索引查找,他在每块内存中除了存放值还存放了下块内存的索引,优点:增删快,缺 ...
分类:
Web程序 时间:
2020-07-28 00:24:34
阅读次数:
87
#1 栈 ##1.1 栈的基本概念 栈(stack)又名堆栈,它是一种 运算受限的线性表。限定 仅在表尾进行插入和删除操作 的线性表。表尾被称为栈顶,相对地,把另一端称为栈底。 ###1.1.1 特点 它的特殊之处在于限制了这个线性表的插入和删除的位置,它始终只在栈顶进行。这也就使得:栈底是固定的, ...
分类:
编程语言 时间:
2020-07-27 23:47:07
阅读次数:
64
大顶堆和小顶堆 相关介绍可参看:北京大学空地学院数据结构与算法 第六章 6.8.2.2 小节 代码实现如下 class Heap: """二叉堆的实现 小顶堆""" def __init__(self): self.heapList = [0] # 默认一个 0 做占位,使得根节点的索引在 1 上 ...
分类:
编程语言 时间:
2020-07-27 23:32:44
阅读次数:
75
prim 先将一个点加入集合中,维护一个dis数组,表示该点距集合中的点的最小距离,每次选取dis的最小值,并把那个点加入集合,更新dis。 可以用优先队列优化 kruskal 把所有的边按边权从小到大排序,利用并查集维护集合关系,对于每条边,若两点不在同一集合,则把两点连接。 Boruvka 假设 ...
分类:
其他好文 时间:
2020-07-27 16:08:42
阅读次数:
75
布隆过滤器(BloomFilter)原理 实现和性能测试 布隆过滤器(BloomFilter)是一种大家在学校没怎么学过,但在计算机很多领域非常常用的数据结构,它可以用来高效判断某个key是否属于一个集合,有极高的插入和查询效率(O(1)),也非常省存储空间。当然它也不是完美无缺,它也有自己的缺点, ...
分类:
其他好文 时间:
2020-07-27 16:06:12
阅读次数:
77
1. Redis Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bi ...
分类:
系统相关 时间:
2020-07-27 15:55:04
阅读次数:
89
前言 上一节通过两个经理案例初步认识动态规划,今天这一节主要讲动态规划的理论知识。 “一个模型三个特征”理论讲解 实际上,动态规划作为一个非常成熟的算法思想,这部分理论总结为“一个模型三个特征”。 一个模型 一个模型指动态规划适合解决的问题模型。这个模型定义为“多阶段决策最优解模型”。 一般是用动态 ...
分类:
编程语言 时间:
2020-07-27 15:39:05
阅读次数:
71