![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 96
Dio夹心小面包
"放弃学习的我们是没有翅膀的雄鹰 不会理智的我们是根茎腐烂的大树"
展开
-
『 C++ 』海量数据处理
故数据中必然存在大量的重复数值,而位图当中可以精确计算数据对应的是否存在问题,其最大数据为。再次遍历另外一个文件,当遇到相同值时保存该值(该数据为交集),并将该数据对应的映射置为。但是若是将文件进行平均切分,在遍历时只能采用暴力枚举的方式,对于检查的效率将会低至。位图可进行映射与去重的操作,可将两个文件遍历并映射至位图当中进行去重;当出现抛该异常时说明在遍历小文件的过程中某个文件中的数据量过大;当出现抛该异常时说明在遍历小文件的过程中某个文件中的数据量过大;原创 2024-02-18 18:37:24 · 1114 阅读 · 1 评论 -
『 C++ - STL 』位图(BitMap)与布隆过滤器(Bloom Filter)
腾讯曾经有一道面试题是这样的:存在40亿个不重复的无符号整数,其中这些数据并未排过序;给定一个无符号整数,如何快速判断这个数是否存在于这40亿个数中;很显然,这个面试题问的是一个数据在不在的问题;那么如何能够对数据进行判断在不在的问题?遍历数据逐个判断遍历数据逐个判断可以理解为一种暴力的解法,这种暴力的解法通过枚举的思路对数据逐个查询;但实际上该方法的时间复杂度为O(N)[由于需要遍历整组数据]......;原创 2024-02-15 20:10:24 · 1217 阅读 · 1 评论 -
『 C++ - STL 』unordered_xxx系列关联式容器及其封装(万字)
unordered系列关联式容器在C++11标准中被首次引入,与有序容器不同,unordered系列的关联式容器并不会去维护数据中各个元素的顺序,由于该系列容器为哈希表实现,所以整体的存储顺序是由哈希函数决定的,可以在一些不需要对数据进行排序的场景下提供更快的性能;原创 2024-02-06 17:45:04 · 1547 阅读 · 3 评论 -
『 C++ - Hash 』闭散列与开散列哈希表详解及其实现 ( 万字 )
哈希表是一种常用的数据结构,该数据结构往往能存储大量的数据,在C++当中,底层为哈希表的容器最常见的为unordered_xxx系列,例如unordered_map与unordered_set,这两个容器是在C++当中以哈希表为底层的关联式容器,具体的关联式容器的特点参照上篇;哈希表通过一个叫做哈希函数(Hash Function)的算法,将存储的每个数据项与一个唯一的键值(key)进行绑定;这个函数会将每个键值映射到哈希表中的一个位置,以便对数据进行快速访问;原创 2024-02-04 23:50:53 · 1142 阅读 · 3 评论 -
『 C++ 』二叉树进阶OJ题
中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(该题的解题思路与上一题二叉树的中序遍历如出一辙,即也是通过将树分为左路节点与左路节点的右子树的方式;由于也是按照左路节点与左路节点的右子树的左路节点将问题化为子问题进行迭代的思路,所以。的特性将数据进行存储,并且反向拿出,即以该树的左路节点为例,将左路节点全部入栈,的方式判断左右两个子树,当节点访问至两个节点的其中一个节点时返回该节点;原创 2023-12-21 12:33:08 · 906 阅读 · 12 评论 -
『 基础算法题解 』之双指针(下)
即给定一组升序数据(数组price),并给出一个变量target,要求找出和为target的两个数;所指位置数据>0时,则代表cur后区间的数据中已经不满足三数之和>0,所以。题目大差不差,与之不同的是多一层循环用来固定双指针外的另一个数;由于数据已经是升序已经具有单调性,所以不需要再进行排序;,具体的思路为将数组首先进行一次排序使其具有单调性;小优化:由于数据经排序后已经具有单调性,所以当。所指位置数据>0时,可以直接跳出循环;该双指针的解法即为创建两个指针分别为。该题的双指针的思路与。原创 2023-10-27 19:19:15 · 111 阅读 · 5 评论 -
『 基础算法题解 』之双指针(上)
在这一题目的描述之中,有个奇妙的点,为什么在这个规则之下必定会出现循环且不会有第三种结果(即无限不循环);指针来说,该指针用来划分非0元素与0元素,但是在最初始的情况下并没有非0元素区间,所以该段区间不存在,(由于具有单调性,表示该left所指向位置的数据与右侧的任意数据相加都不能组成一个合规的三元组和);该题的大概为给定一个数组,并给定一个对应的规则,使得数组按照规则划分为若干个区间;指针为已处理区间内,非0元素与0元素的分界线,即最后一个非0元素的位置;原创 2023-10-24 19:22:19 · 93 阅读 · 3 评论 -
【数据结构】排序合集(万字详解)
排序,以字面意思来说就是通过特定的算法将一组或多组无序或者接近有序的数据,以升序或者降序的方式重新进行排序组合;以升序的方式进行排序最终为:排序算法就是如何使得数据按照要求排列的方法;冒泡排序选择排序插入排序希尔排序归并排序快速排序堆排序计数排序排序算是一种较为基本的且需要掌握的算法,优秀的排序算法能在程序中使得效率倍式的提升;不同的排序算法可以根据不同的使用场景分别进行使用;排序中较为难的点为一些排序算法中的边界问题,以及递归中分治思路的理解;原创 2023-09-25 01:51:47 · 451 阅读 · 29 评论