
算法
文章平均质量分 78
初雪与你
世事静方见,人情淡始长
展开
-
快速幂讲解
现在给出一个问题 :计算a的b次方的值我们很容易想到用一个循环一直累乘就能完成这个计算 但当a和b很大的时候 这种写法不仅会造成溢出,而且计算速度非常慢,时间复杂度为O(n)下面给出另一种写法,“快速幂”快速幂顾名思义就是快速的计算底数的n次幂,它的时间复杂度为O(log₂N) 大大提高了计算速度。接下来 我们来讲解它的原理:对...原创 2018-04-09 23:34:08 · 507 阅读 · 1 评论 -
RMQ算法讲解
现在给你一个问题:给你一个数组 ,其中有N个数字,现在给你一次询问,给你区间[l ,r],问你在这个区间内的最大值为多少?哇!这题简单啊,一个for循环,遍历数组记录最大值输出即可啊。那好,现在我告诉你假设N为50000,给你Q次询问((1 ≤ Q ≤ 200,000)),如果这种情况,我们还每次都进行暴力遍历求解的话,那么无论你提交几万次都会得到如下结果:是的,这种暴...原创 2018-04-11 20:43:28 · 37502 阅读 · 28 评论 -
欧几里得辗转相除法
欧几里德算法又称辗转相除法,是用于计算两个正整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式 gcd (a, b) = gcd (b, a mod b)。(greatest common divisor,简写为gcd)最大公约数不仅能解决求解最大公约数的问题,也能帮助来找到最小公倍数等相关问题,在实际运用中十分广泛。该算法的程序执行流程是: ⒈ 首先设r为a/b所得余数即 ...原创 2018-03-29 22:41:04 · 3655 阅读 · 1 评论