
数据结构和算法
文章平均质量分 56
数据结构和算法的学习笔记
DAWN_T17
Dawn
展开
-
快速幂算法
快速幂算法能帮我们算出指数非常大的幂,传统的求幂算法之所以时间复杂度非常高(为O(指数n)),就是因为当指数n非常大的时候,需要执行的循环操作次数也非常大。因此,如果题目让你求2的100次方,程序设计语言中最大的long lnog类型也无法承载这么大的数值,所以题目才不会要求你输出结果,因为结果可能会非常的大,大到没有任何类型可以承载。因此,我们可以借助这个法则,只需要在循环乘积的每一步都提前进行“取模”运算,而不是等到最后直接对结果“取模”,也能达到同样的效果。2^100的幂结果的后三位整数位376。原创 2025-02-06 23:28:12 · 226 阅读 · 0 评论 -
位运算及常用技巧
我们知道,在二进制中,最低位决定了是奇数还是偶数,所以我们可以提取出最低位的值,即与1 相与即可实现目的,为0 则是偶数,为1 则是奇数。例如对于− 15 ,其补码为11110001 右移一位( − 15 > > 1 )得到的是11111000 即− 8 其他的同理。那么对于负数的位运算而言,它们的操作都是建立在补码上的,得到的运算结果是补码,最后将补码结果转化成一个普通的十进制数结果。,对于有符号数的右移操作,不同的处理器架构可能有不同的规定。将x左移一位实现× 2 将x 右移一位实现÷ 2。原创 2025-02-06 23:04:22 · 260 阅读 · 0 评论 -
基础汉诺塔
那么我们要做的是先将n-1个盘子移动到b,然后将最后一个盘子也就是第n个盘子移动到c,再把b上的n-1个盘子移动到c。其中n-1个盘子的移动过程就是将n-2个盘子移动到c,然后将第n-1个盘子移动到b 再将c柱上n-2个盘子移动到b,然后其中第n-2个盘子的移动过程是先将n-3个盘子移动到。问题的背景来源于一个传说:在印度的一个寺庙里,有三根金刚石柱和64个直径大小不一的金盘。若再画一个四层汉诺塔 会发现实际就是 把上三层放到辅助托盘 第四层放到目标托盘 再把上三层放到目标托盘。每次只能移动一个金盘。原创 2024-11-29 22:40:12 · 406 阅读 · 0 评论 -
求质数的几种方法(埃拉托斯特尼筛和欧拉筛)
法一:循环朴素求解法一:循环朴素求解1.暴力所有数字2.优化长度(1)除2 缩短长度(2)剔除偶数(2以后的偶数都是合数)(3)开根号 缩短长度例如:100 可以用 1 * 100,2 * 50 ,4 * 25 ,5 * 20,10 * 10表示每个式子中总会有一个数小于等于100开平方 所以才有了这种方法。原创 2024-11-26 00:59:44 · 623 阅读 · 0 评论 -
KMP算法
在这里j指针之所以退回到next[j-1]的位置,因为字符"f"前面的子串为"aabaa",该子串的最大相等前后缀为"aa",而该子串的后缀"aa"已经与s[3]s[4]比较过是相等的,那么子串的前缀就一定是与s[3]s[4]相等的,不需要比较,因此我们的j可以从前缀的后面第一个字符开始匹配,而前缀的长度为next[j-1],所以j应该回退到next[j-1]。从上面的流程可以看到,在子串的某一个字符t[j]处匹配失败时,我们需要查找该字符前面的那个子串的最大相等前后缀的长度,即next[j-1],原创 2024-11-10 21:40:38 · 874 阅读 · 0 评论 -
二维前缀和和二维差分
前缀和(Prefix Sum)是一种数组预处理技术,用于高效地计算数组中某个范围内元素的和。前缀和数组是原始数组的元素依次累加的结果。具体来说,计算前缀和的步骤包括:初始化一个前缀和数组,长度为原始数组长度加一。从数组的第一个元素开始,依次累加得到前缀和数组的每个元素。最终得到前缀和数组,其中每个元素表示原数组中对应位置之前所有元素的和。由于每个元素只被访问一次,所以总体的时间复杂度是 O(n)。这使得前缀和成为一种高效的预处理技术,特别是在需要多次查询数组中某个范围的元素和时。原创 2024-07-22 17:15:47 · 228 阅读 · 0 评论 -
高精度算法
字符串输入,数组存储。字符串输入,数组存储。原创 2024-05-25 16:20:49 · 188 阅读 · 0 评论 -
-快速排序-
【代码】-快速排序-原创 2024-03-30 12:02:16 · 131 阅读 · 1 评论 -
求最大公约数(最小公倍数)的四种方法
依据定理两个整数的最大公约数等于较小数和两数取模的最大公约数。时间复杂度O(log(max(a,b))求两个数的最大公约数(最小公倍数)最小公倍数=两数相乘/最大公阿约数。最大公约数×最小公倍数=两数相乘。1.辗转相除法(欧几里得算法)时间复杂度O(log(n))2.辗转相减法/更相减损法。原创 2024-03-30 11:55:58 · 1755 阅读 · 1 评论