
算法/数据结构
文章平均质量分 72
Dreammmming Time
人啊,毕业时意气风发,进入社会后就逐渐钝化了,因此希望通过知识分享和新知识学习,在大数据领域彼此勉励,共同成长,拒绝被环境束缚。
展开
-
一种快速对32位/64位整数取模的方法
当使用%求一个随机数,在区间【0,N-1】的索引位置时,性能并不会高效,因此mod指令通常需要多个CPU周期才能完成,因此Blog()中提出一个变体算法,来消除取模运算,取而代之的是乘法与位移的联合操作。原创 2024-01-09 19:24:56 · 582 阅读 · 0 评论 -
树状数组的原理分析及使用
问题给定集合S,包含了N个元素,每个元素都在区间[1, 1000]内,用户输入两个参数x, y,求解任意区间[x, y]内,其中j <= k,出现的元素和。树状数组原理解析区间树表示区间树地完整表示如下,可以看到它就是一树满二叉树,为能能够表达所有区间的信息,需要多创建2^(k-1)个结点。树1: (0) [1,8] (1) (2)原创 2021-04-01 15:55:40 · 216 阅读 · 0 评论 -
HyperLogLog在Presto和ClickHouse中的兼容及性能差异
前言当前HyperLogLog是一种主流的算法,用于估算海量同类型数据的不同值,因此几乎所有的计算/查询引擎都有了想关的实现,当然虽然可能其它的优化算法,但算法主体相同,然而不同引擎实现的存储过程大同小异,如果想要在不同引擎之前共享中间结果,就需要深入了解不同引擎的存储实现。Presto是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎是一种Massively parallel processing (MPP)架构,多个节点管道式执⾏⽀持任意数据源(通过扩展式Connector原创 2021-02-23 18:28:56 · 1306 阅读 · 0 评论 -
线性回归之最小二乘法简述
监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。在统计学中,线性回归方程是利用最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,而不是一个单一的标量变量。)在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。这原创 2020-07-09 15:06:23 · 6421 阅读 · 0 评论 -
整数四则运算溢出及溢出后的转换
无符号数溢出加法运算对于无符号的短整型(unsigned short int),假设其为1个字节,其取值范围为0 ~ 255(即0 ~ 2^8 - 1),当两个无符号数相加溢出时,舍弃高位保留低位。如a=255=(1111 1111)2,b=10=(0000 1010)2a = 255 = (1111\ 1111)_2,b = 10 = (0000\ 1010)_2a...原创 2020-01-22 17:30:53 · 2538 阅读 · 0 评论 -
堆排序算法之前K个最大/最小值
堆排序算法:需要根据输入的元素,构建一个大根/小根堆,即完全二叉树(不存在没有左孩子或右孩子的非叶子结点,以数组保存所有结点为例,父子结点的关系为:left_child_idx = 2 * parent_idx + 1, right_child_idx = 2 * parent_idx + 2),其中每个非叶子结点的值均大于/小于其左右孩子,同时根结点值为所有结点值中的最大/最小值。构建大根堆...原创 2020-01-16 10:55:42 · 1031 阅读 · 0 评论