- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 B+tree - B+树深度解析+C语言实现+opencv绘图助解
B+tree很重要,它被广泛应用于数据库和文件系统中作为索引结构。全站讲B+tree的,基本上都是主讲b-tree,最后顺带一两句的B+tree。有一些能配图讲解b+tree的插入和删除,但也是部分场景,不全面。本文将深度解析B+tree,系统的讲清楚B+tree的实现细节。并使用opencv来绘制B+tree,协助理解B+tree。包括绘制一些关键的中间临时状态的B+tree,高亮关键节点展示算法过程等,以进一步理解B+tree的实现原理。
2024-04-24 15:39:19 584 3
原创 堆和堆排序 - 彻底解析+C语言实现+opencv绘图助解
本文的最原始出发点在于分享一种彻底搞明白堆排序的方法。百度一下堆排序,会有很多讲解内容。一来就开始讲堆的属性,读者不知道为什么。一来就给出堆的数据结构代码,直接从代码开始讲堆排序,读者一片茫然。直接告诉你堆排序的流程,比如先交换位置,然后执行上浮、下沉等操作,很难理解。本文从堆的前世今生讲起,并且借助opencv绘制出堆的图,以及一些关键临时状态的图,最终让你彻底明白什么是堆和堆排序。注:如果你只想关注堆排序,你可以直接去看堆排序章节,里面会给你导航你至少需要了解的堆相关知识的链接。
2024-04-24 15:40:27 970 5
原创 B-tree - B树深度解析+C语言实现+opencv绘图助解
看过很多讲btree的,大多一知半解。有一些能大概讲清原理,但是实现的代码漏洞百出。最近花了点时间整理了一下这些年的资料,建了个代码仓库,从0开始实现了btree。这里成文记录,争取把btree讲透彻。详细介绍btree的算法实现逻辑,用C语言实现一种Btree的算法,该算法代码:支持构建任意阶的Btree(只要满足m >= 3就行)支持存储任意类型的key代码尽量简洁易懂纯C实现,以便有需要的同学可直接拿去应用。当btree应用于内核这种更底层的场景时,C++实现的版本就不可用了。
2024-03-23 00:36:00 1084 1
原创 分布式一致性算法-Paxos翻译和注解
Paxos是解决不可靠处理器(不可靠是指处理器可能故障)网络中一致性问题(consensus)的一个协议族。一致性(或者共识)是在一组参与者之间对一个结果达成共识的过程。当参与者或者它们的交互媒介可能发生故障的时候,这个问题变得复杂。
2024-02-28 17:45:45 1167 1
原创 分布式一致性算法-Raft翻译和注解
Raft算法是一种分布式系统中的一致性算法,提供和Paxos相同级别的功能和性能,2014年首次发表。Raft因其易于理解和实现的特性,已经被广泛应用于多种分布式系统中,包括分布式数据库、分布式文件系统、服务发现系统等。
2024-02-28 15:18:34 1059 1
原创 动态规划-最长公共子串(c)
动态规划(dynamic programming)是一种算法设计方法。基本思想是在对一个问题的多阶段决策中,按照某一顺序,根据每一步所选决策的不同,会引起状态的转移,最后会在变化的状态中获取到一个决策序列。上面这段话是比较官方的术语描述,还可以这样从编程层面理解:动态规划一般用于求解具有重叠子问题和最优子结构特性的问题。它通过将大问题分解为小问题,并存储小问题的解(通常在一个表格中),避免了重复计算,从而提高了效率。动态规划可以应用于许多类型的问题,包括但不限于最优化问题、计数问题和决策问题。
2024-02-27 11:20:50 602
原创 动态规划-01背包问题新解(c)
本文将从一个新的角度来描述和实现01背包问题,以协助对01背包问题以及教材上的算法的彻底理解。新的角度为:传统思路算法,“新”是新在与绝大部分官方算法思路的区别,但是该算法的思路是传统的,传统是指动态规划领域的传统。动态规划:简介动态规划问题,因为01背包问题是动态规划中的经典示例之一01背包问题:01背包问题简介传统思路算法:区别于“官方”的算法实现,使用传统的动态规划思想来实现01背包问题,以帮助理解01背包问题的基本实现思想。
2024-02-27 11:19:25 1299
原创 Gtest/Gmock探究(三)-- MOCK_METHODX系列宏分析
这篇文章紧接着前面两篇博客《Gtest/Gmock探究(一)– 经典示例代码》和《Gtest/Gmock探究(二)– TEST宏分析》,第一篇给出了初识gtest框架的经典示例代码,第二篇详细分析了TEST宏的机制原理。本篇将详细分析gmock的MOCK_METHOD系列宏。首先简单介绍一下MOCK_METHOD宏的使用方法,然后进行宏展开并静态分析展开后的代码,最后使用gdb调试跟进测试程序,
2018-01-29 13:51:31 28581 3
原创 Gtest/Gmock探究(二)--TEST宏分析
刚开始看Gtest/Gmock使用方法的时候,自己写了一些测试代码,能工作,但是总觉得有些抽象。你可能会跟我一样有如下疑问: • 为什么写了TEST宏,我们自定义的测试就能被运行 • 为什么MOCK_METHODX系列宏只需要用来声明函数就行了,我们该怎样定义这些被mock的函数的函数体具体逻辑呢? • 有些语法一不注意就会写错,比如下面的代码:E
2017-12-16 21:47:52 15690 4
原创 Gtest/Gmock探究(一)-- 经典示例代码
接下来几篇文档记录,打算探究一下Google C++的单元测试框架Gtest/Gmock. · 先给出经典初识Gtest框架的代码(AccountMangerTest) · 紧接着探究TEST宏原理 · 随着是Gmock的MOCK_METHODX系列宏的探究 代码结构: 首先,准备gmock的源代码(我这里是gmock-1.7.0),并且按照官
2017-12-14 22:55:44 7124
原创 OpenStack 初探(三) -- OpenStack API 初探(调用API获取OpenStack信息)
本篇博客紧接前两篇《OpenStack All-In-One模式部署(初学OpenStack必备)》和《在OpenStack中launch一个虚拟机实例》,当然亦可独立阅读,介绍如何调用OpenStack的Restful API来获取系统的一些信息。仅仅只是初探,给出了两个API的调用全过程。 最开始写这篇的时候,是写给同事查阅的,英文版的(但是是极简单的英文)。后续会给出中文版,先粘贴
2017-12-09 20:25:07 6444 1
原创 OpenStack 初探(二) -- 在OpenStack中launch一个虚拟机实例
本文接上一篇教程《OpenStack All-In-One模式部署(初学OpenStack必备)》 按照上一篇描述的步骤进行安装OpenStack all-in-one模式,就已经完成了OpenStack环境的基础部署。接下来,我们会在这个OpenStack基础平台上配置和launch一个虚拟机。>>> continuing …6、 配置网络接口 6.1 现在的
2017-12-06 13:07:59 9020 13
原创 OpenStack 初探(一) -- All-In-One模式部署(初学OpenStack必备)
一、操作前需了解: 1. OpenStack提供IaaS(基础设施即服务)服务,它是开源的云计算平台。(个人理解:将多台硬件设备虚拟化成一个池,然后在池子里放虚拟机,放存储(对象和块)集群,所有整合一起提供云计算基础服务,会想到VMWARE的ESX(i)) 2. 通常OpenStack是由许多硬件节点组合而成的,包括控制节点Controller,计算节点Compute,网络
2017-12-04 13:54:37 38211 17
gmock-1.7.0(包含gtest/gmock)
2018-01-29
linux下的filemon _改进版(媲美windows filemon )
2011-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人