首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
chirpyli
掘友等级
工程师
公众号:内核思考
获得徽章 7
动态
文章
专栏
沸点
收藏集
关注
作品
赞
16
文章 13
沸点 3
赞
16
返回
|
搜索文章
最新
热门
Protocol Buffers工作原理
这里记录一下学习与使用Protocol Buffer的笔记,优点缺点如何使用这里不再叙述,重点关注与理解Protocol Buffers的工作原理,其大概实现。 我们经常使用Protocol Buffer进行序列化与反序列化。理解Protocol Buffer的工作原理,就要理…
堆排序
选择排序的基本思路是:每次都从原序列中顺序查找出最小的元素,放入新的序列的下一个位置(在具体实现中,一般是还是放在原序列中,采用依次交换位置的方法)。这种最简单实现的选择排序时间复杂度为。有没有效率更高的基于选择的排序算法呢?堆排序就是一种,与选择排序一样,堆排序是每次从原序列…
STL堆实现
堆是十分重要的数据结构,我们常用的优先队列就是基于堆实现的数据结构,堆排序也是基于堆实现的,所以,我们要理解堆的实现,之前自己根据堆的原理自己实现了堆,现在来分析一下STL中堆的实现代码,STL的堆实现相比自己实现的代码肯定要多很多,但原理是一样的,我们下面看一下。 STL中提…
STL关联容器
这里简单学习一下STL关联容器,主要是map、multimap、set、multiset以及unordered_map。前四个底层实现都是利用红黑树实现的,查找算法时间复杂度为O(log(n)),而unordered_map从名字上就知道是无序容器,其实现原理类似哈希表,查找算…
STL常用序列容器
这里简要的记述一下STL常用容器的实现原理,要点等内容。 vector是比较常用的stl容器,用法与数组是非类似,其内部实现是连续空间分配,与数组的不同之处在于可弹性增加空间,而array是静态空间,分配后不能动态扩展。vecotr的实现较为简单,主要的关键点在于当空间不足时,…
Rust学习资料汇总
列举一些学习Rust的好资料,方便平常学习与查阅。大部分文档在官网Grow with Rust一节都有列出,另一部分是平常学习时涉及到的文档资料。 这本书当然是要第一本阅读的了,入门首选。 通过代码示例学习Rust。 Rust包管理工具,提供了编译、安装等功能。cargo bu…
数据结构:自组织链表
引入跳跃链表的目的是为了加速查找过程。而加速策略其中一个非常重要的观点就是并非所有的元素使用的频率都相同。我们自然希望高频使用的元素在链表的头部,而低频的在链表尾部。单向链表和双向链表需要进行顺序查找以定位某个元素,还可以用某种方法动态地组织链表,从而提高查找效率。有许多不同的…
数据结构:稀疏表
在许多应用中,表似乎是最自然的一种选择,但有时出于对空间的考虑,就有可能放弃这种选择。当只用表的一小部分时尤其如此,这种类型的表称为稀疏表(sparse table),因为表中只是稀疏地放置了一些数据,它的大部分单元都是空的。此时可以用链表代替表。 举个例子,大学里有几千名学生…
数据结构:红黑树
红黑树是一种自平衡二叉查找树,可以在时间内完成查找、插入和删除。相对于AVL树来说,牺牲了部分平衡性以换取插入/删除操作时少量的旋转操作,整体来说性能要优于AVL树。红黑树较AVL树等二叉树的不同在于其有个标识位(红色或者黑色),这个标识位的作用在于减少因不平衡造成的旋转操作,…
数据结构:堆
堆是一种特别的树状数据结构。若满足以下特性,即可称为堆:“给定堆中任意节点P和C,若P是C的父节点,那么P的值会小于等于(或大于等于)C的值”。若父节点的值恒小于等于子节点的值,此堆称为最小堆;反之,称为最大堆。 任意节点小于等于(或大于等于)它的子节点,最小元(或最大元)在堆…
下一页
个人成就
文章被点赞
203
文章被阅读
213,333
掘力值
3,636
关注了
5
关注者
85
收藏集
3
关注标签
1
加入于
2019-06-27