首页
学习
活动
专区
工具
TVP
发布

若尘的技术专栏

一些教程
专栏作者
686
文章
1160619
阅读量
33
订阅数
Redis 分析
Redis 是基于内存的数据库,那不可避免的就要与磁盘数据库做对比。对于磁盘数据库来说,是需要将数据读取到内存里的,这个过程会受到磁盘 I/O 的限制。
ruochen
2021-12-15
7130
JVM 线上调优详解
每个方法被执行时候,会同步创建一个栈帧。用于存储局部变量表、操作数栈、动态连接、方法出口。
ruochen
2021-12-15
1K0
redis 常见题
Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。
ruochen
2021-12-07
7840
linux 字符设备驱动
Linux系统中,应用程序访问外设是通过文件的形式来进行的,Linux将所有的外设都看做文件,统一存放在/dev目录下。
ruochen
2021-12-05
9.6K0
linux字符设备驱动
Linux系统中,应用程序访问外设是通过文件的形式来进行的,Linux将所有的外设都看做文件,统一存放在/dev目录下。
ruochen
2021-12-04
10.6K0
GraphQL
Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。
ruochen
2021-11-25
2.6K0
Redis常见面试题
Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。
ruochen
2021-11-22
3330
Redis 解密
Redis 是基于内存的数据库,那不可避免的就要与磁盘数据库做对比。对于磁盘数据库来说,是需要将数据读取到内存里的,这个过程会受到磁盘 I/O 的限制。
ruochen
2021-11-22
6910
无重复字符的最长子串
定义一个map数据结构存储(k,v),其中key值为字符,value值为字符位置+1,加1表示从字符位置后一个才开始不重复
ruochen
2021-11-21
3950
查找——HASH
对于频繁使用的查找表,希望 ASL = 0 记录在表中位置和其关键字之间存在一种确定的关系 HASH 定义 根据设定的哈希函数 H(key) 和所选中的处理冲突的方法,将一组关键字映象到一个有限的、地址连续的地址集 (区间) 上,并以关键字在地址集中的“象”作为相应记录在表中的存储位置,如此构造所得的查找表称之为“哈希表” HASH函数的构造 构造原则 - 函数本身便于计算 - 计算出来的地址分布均匀,即对任一关键字k,f(k) 对应不同地址的概率相等,目的是尽可能减少冲突 --- 直接定址法
ruochen
2021-07-02
6320
图的应用——关键路径
拓扑排序 AOE网 在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网。AOE网中没有入边的顶点称为始点(或源
ruochen
2021-07-02
6390
图的应用——拓扑排序
AOV网(Activity On Vertices) 在一个表示工程的有向图中,用顶点表示活动,用有向边<Vi, Vj>表示活动Vi 必须先于活动Vj 进行。这种有向图叫做顶点表示活动的AOV网络 。 AOV网特点: AOV网中的弧表示活动之间存在的某种制约关系 AOV网中不能出现回路 算法思想 输入AOV网络。令 n 为顶点个数。 在AOV网络中选一个没有直接前驱的顶点, 并输出之; 从图中删去该顶点, 同时删去所有它发出的有向边; 重复以上 2、3 步, 直到: - 全部顶点均已输出,拓扑有
ruochen
2021-07-02
4160
图的应用——最短路径
方法一:每次以一个顶点为源点,重复执行Dijkstra算法n次—— T(n)=O(n³)
ruochen
2021-07-02
4220
数据结构——平衡二叉树(AVL)
平衡二叉树 世界需要平衡,破坏平衡的一方,也许会一时很强势的称霸,最终的结局逃不过孤立和落空 定义 左、右子树是平衡二叉树; 所有结点的左、右子树深度之差的绝对值≤ 1平衡因子:该结点左子树与右子树的高度差 任一结点的平衡因子只能取:-1、0 或 1;如果树中任意一个结点的平衡因子的绝对值大于1,则这棵二叉树就失去平衡,不再是AVL树; 对于一棵有n个结点的AVL树,其高度保持在O(log2n)数量级,ASL也保持在O(log2n)量级。 存储结构 typedef struct BSTNode{ Elem
ruochen
2021-07-02
4800
排序——插入排序
插入排序 基本思想 每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。即边插入边排序,保证子序列中随时都是排好序的 基本步骤: 在R1..i-1中查找Ri的插入位置; R1..j.key <= Ri.key < Rj+1..i-1.keyundefined直接插入排序(基于顺序查找)排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。 将Rj+1..i-1中的所有记录均
ruochen
2021-06-30
2450
排序——归并排序 & 基数排序
归并排序 归并:将两个或两个以上的有序表组合成一个新有序表 基本思想 初始序列看成n个有序子序列,每个子序列长度为1 两两合并,得到n/2个长度为2或1的有序子序列 再两两合并,重复直至得到一个长度为n的有序序列为止 [在这里插入图片描述] 算法分析 时间效率:O(nlog2n) 空间效率:O(n) 稳定性:稳定 基数排序 基数排序是一种借助“多关键字排序”的思想来实现“单关键字排序”的内部排序算法。 多关键字排序 多关键字: n 个记录的序列 { R1, R2, …,Rn} 对关键字 (Ki0,
ruochen
2021-06-30
5380
排序——选择排序
选择排序 --- 简单选择排序 基本思想 每一趟在后面 n-i +1个中选出关键码最小的对象, 作为有序序列的第 i 个记录 算法实现 void SelectSort(SqList &L){ // 对记录序列R[1.. L.length]作简单选择排序 for(i = 1; i <= L.length; i++){ // 选择第 i 小的记录,并交换到位 k = i; for(j = i + 1; j <= L.length; ++j) if(L.r[j].key < L.r[k].k
ruochen
2021-06-30
8540
排序——快速排序
快速排序 基本思想 任取一个元素 (如第一个) 为中心 所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表; 对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个 [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] 算法实现
ruochen
2021-06-30
8580
排序——希尔排序
希尔排序(基于逐趟缩小增量) 基本思想 先将整个待排记录序列分割成若干子序列,分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。 [在这里插入图片描述] 算法实现 void ShellSort(SqList &L, int dlta[], int t){ // 按增量序列dlta[0…t-1]对顺序表L作Shell排序 for(k = 0; k < t; k++) ShellInsert(L, dlta[k]); // 增量为dlta[k]的一趟插入排序
ruochen
2021-06-30
7340
排序——冒泡排序
冒泡排序 基本思想 依次比较相临两个数据元素的大小,若逆序则交换两个数据元素,否则不交换。 当完成一趟交换以后,最大的元素将会出现在数据序列的最后一个位置。 重复以上过程,直到待排序序列中没有逆序为止。 每趟结束时,不仅能挤出一个最大值到最后面位置,还能同时部分理顺其他元素; **一旦下趟没有交换,还可提前结束排序** 算法实现 c++代码实现 // 原始冒泡排序 void bubblf_sort(SqList &L){ // 从大到小有序 for(i = 1; i <= L.length
ruochen
2021-06-30
1.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档