可持久化线段树(主席树) 单点修改 ? 1.单点修改时,我们考虑将包含该点$k$的线段树节点新建出一条链。(就像这样) 每次修改将创造出$logn$个新节点。 ? ? 2.修改完的线段树不再是一颗完全二叉树,我们不能直接用层次编号,而是直接改为记录左右子节点的编号。大概的意思就是:不能用$o << ...
分类:
其他好文 时间:
2020-07-30 21:49:21
阅读次数:
69
一、索引的本质 没有索引的sql是没有灵魂的,查询速度是非常慢的。 本质:索引是帮助MySql快速获取数据的排好序的数据结构。 二、 索引数据结构: 二叉树 :层级太高,自增主键索引甚至退化成了链表 红黑树 :红黑树是平衡二叉树的一种,相对于二叉树好点,但是当数据大时,层级还是很高,查询速度慢。 H ...
分类:
数据库 时间:
2020-07-30 21:44:40
阅读次数:
80
1、完全二叉树(complete binary tree)的定义 若设二叉树的深度为h,除第h层外,其他各层(1到h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树 2、满二叉树的定义(full binary tree) 满二叉树的节点要么是叶子节点,度为0,要么是 ...
分类:
其他好文 时间:
2020-07-30 16:55:10
阅读次数:
78
题目引出的思考: 前面学习中,一般都是需要前序+中序或者后序+中序才能构建出一颗二叉树,故本道题中一开始并未给出中序遍历,心中疑惑便出,是否该二叉树不唯一?再细看是二叉排序树,仔细分析显然可得二叉排序树中的中序遍历必然是递增的,故排除自己的错误想法。 证明: 如果一棵非空二叉树(所有结点值均不相同) ...
分类:
编程语言 时间:
2020-07-30 14:49:05
阅读次数:
129
1.什么是二叉堆? 二叉堆本质上是一种完全二叉树,它分为两个类型。 最大堆—最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值。 最小堆—最小堆的任何一个父节点的值,都小于或等于它左、右孩子节点的值。 二叉堆的根节点叫做堆顶。 最大堆和最小堆的特点决定了:最大堆堆顶是整个堆中的最大元素;最 ...
分类:
其他好文 时间:
2020-07-30 14:04:44
阅读次数:
66
数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。
分类:
其他好文 时间:
2020-07-30 10:55:57
阅读次数:
68
以后将开通新的栏目《面试高频算法详解》,为大家介绍一些比较常考的稍微复杂一点的算法题,有兴趣的可以点赞关注加转发呀~图源:pexels01题目介绍题目描述:leetcode146LRU缓存机制中等难度运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用)缓存机制。它应该支持以下操作:获取数据get和写入数据put。获取数据get(key)-如果密钥(key)存在于缓存中,则获取密钥的值(总是
分类:
编程语言 时间:
2020-07-30 10:54:21
阅读次数:
89
节点的数据结构 struct Node { int value; struct Node* next; }; typedef struct Node Node; 操作和演示 #include <stdlib.h> #include <stdio.h> // 建立一个节点 Node *createNo ...
分类:
编程语言 时间:
2020-07-30 01:18:43
阅读次数:
82
1.什么是hash算法Hash(散列、杂凑)算法,是把任意长度的输入通过特定的算法变换成固定长度的输出,输出的值就是hash值。这个特定的算法就叫hash算法,hash算法并不是一个固定不变的算法。只要是能达到这个目的的算法都可以说hash算法。例如MD5,SHA,String.hashcode() ...
分类:
其他好文 时间:
2020-07-30 01:13:48
阅读次数:
68
简介 Redis 是一款开源非关系型(NoSQL)数据库,遵守BSD协议,Key-Value数据结构,Redis支持持久化,数据持久化时数据存储在磁盘中,有着高性能的读写效率。 特点: 1、Redis支五种数据类型:Strings(字符串)、Lists(列表)、Hashes(哈希)、Sets(集合) ...
分类:
其他好文 时间:
2020-07-30 01:13:05
阅读次数:
56