自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 红黑树的构建、插入与删除

红黑树(Red-Black Tree)是一种经典的自平衡二叉查找树,它通过一系列精妙的规则来维持树的平衡,从而保证了各项操作在最坏情况下的时间复杂度为 O(logn)。它属于平衡树,但又不像AVL树那样追求“绝对平衡”,这种“适度”的平衡策略使它在增删操作频繁的场景中更具优势。

2025-07-16 11:11:33 1298

原创 二叉平衡搜索树(AVL)

AVL 树是一种自平衡二叉搜索树(Self-Balancing Binary Search Tree)。它在基本二叉搜索树(BST)的基础上,增加了节点平衡的机制,确保了树的深度维持在 O(logN) 级别,从而保证了各项操作的效率。

2025-07-11 21:26:35 497

原创 二叉搜索树(BST)

二叉搜索树(Binary Search Tree, BST),也称为二叉排序树,是一种重要的数据结构。它将树形结构的灵活性与有序性结合起来,使得查找、插入和删除等操作的平均时间复杂度都能达到 O(logN)。

2025-07-10 19:54:27 820

原创 一致性哈希算法

例如,A、B、C 三个节点可能都挤在环的某一侧,导致某一台服务器(例如 C)承担了绝大部分的负载,而其他服务器却很空闲。提示:像MD5这样的哈希算法具有优秀的离散性,哪怕输入参数(如 “IP#1” 和 “IP#2”)只有微小差异,其输出的哈希值也会天差地别,这非常有助于将虚拟节点均匀地散布在环上。接着,算法将集群中的每一个服务器节点(例如,通过IP地址或主机名)进行哈希,得到一个在环上的具体位置。当一个请求(或数据键)需要被路由时,算法执行相同的哈希函数计算出该键的哈希值,得到其在环上的位置。

2025-07-07 20:28:37 773

原创 大数据 top k 问题

Top K” 问题是在一堆数据中找到最大(或最小)的 K 个元素,这是在海量数据处理中非常常见的一类问题,也是面试中的高频考点。这个问题的核心挑战在于,不要对所有数据进行完整排序,那样做效率太低。

2025-07-06 14:50:13 1126

原创 【大数据查重】哈希表、位图、布隆过滤器

在大数据处理中,查重是一个常见而重要的问题。本文将详细介绍三种高效的查重技术:哈希表、位图和布隆过滤器,分析它们的原理、实现、优缺点以及适用场景。

2025-07-04 16:32:01 542

原创 【数据结构】哈希表的理论与实现

哈希表的核心定义:存储位置=f(关键字) 一个关键字通过散列函数进行映射,得到其存储位置。这种技术称为散列技术。f称为哈希函数或者散列函数。

2025-07-02 16:48:41 936

原创 八大排序算法原理与性能分析

4、循环每次从src01.txt, src02.txt读入一个整数,按照归并的思想,选出小值,写入最总的src012.txt中,被写入的数字,从其对应的文件读入下一个数字,循环处理,直到两个文件的数字合并完成。:选择一个基准数,把小于基准数的元素都调整到基准数的左边,把小于基准数的元素都调整到基准数的左边,把大于基准数的元素都调整到基准数的右边。3、把每一个小文件的数据全部加载到内存上,进行排序,完成后,把排序的结果写回相应的文件当中 =====》所有小文件里面的数据都是有序的。.src11.txt。

2025-06-30 22:17:37 878

原创 c++11容器emplace方法原理剖析

emplace_back利用可变惨模板和完美转发,可以实现直接传递构造参数(如 20, 30),在容器内原位构造对象,而 push_back 必须传递一个已构造的对象。

2025-05-09 11:50:44 549

原创 C++11 常用知识点整理总结

【代码】C++11 常用知识点整理总结。

2025-05-08 20:08:52 765

原创 bind绑定器和function函数对象

熟悉函数对象和绑定器的应用,并了解它们底层的原理。

2025-04-30 19:10:10 806

原创 【c++】STL 核心组件解析:容器、算法与迭代器

深入剖析底层实现原理,包括核心数据结构设计、内存分配机制、扩容策略等关键技术细节。不仅要掌握API的使用方法,更要理解容器类库的架构思想和实现逻辑,达到知其然更知其所以然的深度。

2025-04-27 20:17:33 1045

原创 C++模板编程——函数模板、类模板、容器空间配置器

【解释】析构时,delete[] 会强制析构所有元素,即使某些位置没有构造过对象,导致未定义行为。【解释】这里并不合理,定义vector对象时,应该只是给底层数组开辟空间,而不能构造对象。在函数的调用点, 编译器用用户指定的类型,从原模板实例化一份函数代码出来,称为。例如上面的compare函数模板,当传入 string 类型参数,类型推导为。【解释】对象可能引用外部资源,是需要调用析构函数去释放它管理的资源的。根据传入的参数类型,生成实际可执行的特定类型的代码。针对函数模板,为特定类型提供特殊实现。

2025-04-25 08:37:36 1227

原创 【c++】智能指针详解

内存泄露问题1.动态分配内存,但是忘记释放了2. 由于某些条件成立,程序提前 return,资源释放的代码没有运行到// 动态分配内存// 1.忘记释放内存// 2.可能提前返回而没有释放return;// 内存泄漏!delete ptr;// 只有这条路径会释放内存// 程序退出时,分配的内存没有被释放return 0;智能指针能做到资源的自动释放,防止内存泄漏!下面来实现一个简单的智能指针当智能指针对象出作用域时,系统会自动帮我们调用它的析构函数,释放动态分配的内存。

2025-04-23 20:22:17 1406 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除