![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
倔强的小孩QAQ
这个作者很懒,什么都没留下…
展开
-
2020-11-07
线段树的离散化 先了解一下离散化的概念,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 就是他要求上限是10^9,但是可能真正用到的有用的点却只有几千或者几万而已,而如果你直接用上限来做的话,任何CPU都无法运行。 离散化在线段树方面有着很大的用途: 比如数据过大时,建立线段树无法开辟那么多单元,此时就要用到离散化了。 具体步骤如下: 1.sort(a,a+n)排序。将要用到的区间或者点集排序 2.unique(a,a+n)去重,返回最后那个完成去重的点往后一个位置,好像翻译 2020-11-07 19:03:29 · 60 阅读 · 0 评论 -
2020-09-16
转载:链接:https://www.jianshu.com/p/77c10cb797e8 问题 在设计网络协议过程中,一般会有数据包头和数据包体。通常情况下,数据包头和数据包体长度是固定的。但是在某些特殊场景下,需要传输的数据量不是固定的,这个时候,就需要在数据包体中引入变长结构体的设计了。 以下是参考代码 数据包头: typedef struct _MsgHeader { UINT m_nCmd; UINT m_nPadding; } MsgHeader; 数据包体...转载 2020-09-16 16:16:52 · 96 阅读 · 0 评论 -
2020-08-16
在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。 简单说下HashMap的实现原理: 首先有一个每个元素都是链表(可能表述不准确)的数组,当添加一个元素(key-value)时,就首先计算元素key的has原创 2020-08-16 16:33:04 · 78 阅读 · 0 评论 -
2020-08-16
完整简单的红黑树算法 一、红黑树性质 1.每个结点要么是红的要么是黑的 2.根结点是黑的 3.每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的 4.如果一个结点是红的,那么它的两个儿子都是黑的 5.对于任意结点而言,其到叶结点树尾端NIL指针的每条路径都包含相同数目的黑结点 总结:平衡状态下红黑树要么单支黑-红,要么有两个子节 二、复杂度 O(lgn) 三、结点插入 将一个节点插入到红黑树中,需要执行哪些步骤呢?首先,将红黑树当作一颗二叉查找树,将节点插入;然后,将.原创 2020-08-16 15:48:37 · 124 阅读 · 0 评论 -
2020-08-15
输入8,Key值降序排列,Value随机: 3 0 3 3 3 1 2 3 2 0 1 0 0 0 0 0转载 2020-08-15 16:21:49 · 68 阅读 · 0 评论 -
2020-08-15
转自csdn的文章,仅作为学习笔记。原文链接:https://blog.csdn.net/weixin_36888577/article/details/79937886 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。 在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。 首先要包含头文件#include<queue>, 他和queue不同的就在于我们可以.转载 2020-08-15 15:09:17 · 71 阅读 · 0 评论