快速幂(Exponentiation by squaring)或称:平方求幂,是一种高效计算幂函数的算法。 其以O(logN)的时间复杂度求任意乘方。 本质上,快速幂是分治思想的一种应用。 案例引入 欲求8的6次方 常规算法: private double pow(double x, int y) { double result = 1; for (int i = 0; i <
布隆过滤器 用一句话来说,布隆过滤器是为了解决查询一个元素是否存在于某个集合之中。 例如:50亿个用户ID,查询某ID是否在这50亿集合之中。 50亿*8字节大约为50GB,内存占用极大。 所以一般采用 位数组,以及位数组的延伸设计:布隆过滤器。 在学习布隆过滤器之前,我们需要有些基础性概念: 哈希函数 哈希函数,即散列函数。它可以任意长度的输入通过算法转换成一个定长的输出,这个输出就是散列值,或
二分查找细节分析 本篇仅分析二分查找的细节问题,在阅读前请确保已经对“二分查找”概念与步骤有初步了解。 二分查找的三个常用搜索区间 搜索区间 终止条件 左右指针初始赋值 左右指针赋值 循环条件 左闭右闭[l,r] 相错终止 l=0 r=nums.length-1 l = mid+1 r = mid-1 l<=r 左闭右开[l,r) 相交终止 l=0 r=nums.len
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号