- 博客(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++】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关注的人
RSS订阅