
算法
小小的算法,大大的魅力
Jackeys007
开朗、活泼,一个逗比的程序员
展开
-
二叉堆
二叉堆在学习二叉堆之前,我们得理解堆是什么?定义:堆通常可以看作成一个树。它有任意节点的值都不大于(不小于)其子节点的值;二叉堆的意思就是,它有两个子节点。可分为最大堆和最小堆。最大堆:父节点的值总是大于或等于任何一个子节点的值;最小堆:父节点的值总是小于或等于任何一个子节点的值;如图所示性质:1.下标为i的父节点的左孩子的下标值为2i+1,右孩子的下标值为2i+2(i为0开始)...原创 2020-02-06 20:44:36 · 371 阅读 · 0 评论 -
快速乘
快速乘在我们做乘法运算的时候,一个‘ * ’就可以解决的事情,为什么我们还要学习快速乘法。其实很容易知道原因。因为我们知道乘法有的时候会溢出,当我们int类型的数乘以int类型的数很有可能会爆int,即使是 long long 也可能在乘法时因为结果过大溢出(当模数也是 long long )。所以我们需要寻找一种能高效完成乘法操作并且不会爆 long long 的算法,也就是快速乘。核心思...原创 2020-02-03 15:30:21 · 213 阅读 · 0 评论 -
hash算法(哈希)
hash 算法什么hash 算法 ?简单地来讲就是 讲字符串转化为一个整数。它一般应用于字符串的场景中。现在我们来讲hash算法。hash 公式hash[i]=(hash[i-1]*base+str[i]-‘a’+1)%mod ;base的值是随机的,意思就是你自己可以去选择任意的数,但是按照经验值表明,一般base的值和mod的值要尽量大,这样冲突的概率是最低的。但是经验告诉我们b...原创 2020-02-02 13:19:26 · 2857 阅读 · 0 评论 -
KMP
KMP什么是kmp?kmp是字符串的一种匹配算法?原创 2020-01-31 16:35:44 · 126 阅读 · 0 评论 -
单调栈
单调栈要想理解单调栈,就得知道它是什么?定义:单调栈是指栈中元素按照单调递增(或递减)的顺序存在与栈中,所以它分为单调递增栈,和单调递减栈。如果允许相等,则还可以分为单调非递增栈,和单调非递减栈。所以它既有栈的性质(先进后出),又拥有单调性质,因此叫做单调栈。那么它有什么作用呢?作用:利用单调栈,可以找到从左(或者右)遍历第一个比它小(或者大)的元素或者位置。也可以说是 求某组数以其中某...原创 2020-01-30 21:09:32 · 317 阅读 · 0 评论 -
并查集(超级有趣)
怎么说呢?并查集就是通过下属找自己的上司直到找到最高级上司,如果二者最高级上司相同,则视为朋友。所以在确定是否为朋友的时候,得找到各自最高级上司,才能确定关系。那么我们应该如何找出各自最高级上司呢?我们可以用自定义函数,这样比较方便。int Mysearch(int chief)//我们把每个单独的个体看为一个上司{ int sd,temp;//sd为下属 sd=chief...原创 2020-01-22 22:05:25 · 284 阅读 · 0 评论 -
归并
归并排序(分与治)分:就是将一无序的序列运用二分思想从中分开,直到每组只有一个元素的时候,我们可以将它看成有序的,不用进行处理了。但如果一组数中有2个元素,将它们排序,小在左,大在右。如果超过2个元素,就继续进行递归拆分。治:其实就是将拆分的元素合并起来,组成一个有序的序列。例题:a[5]={1,2,3,4,5},b[5]={6,7,8,9,10};问如何将他们合并成一个有序的序列?我...原创 2020-01-19 17:49:21 · 419 阅读 · 2 评论 -
尺取
尺取:顾名思义,用尺子去取一段。我觉得单独理解尺取算法还是有点模糊的,不如通过一道例题来更好的理解它,本来我们学算法就是来用的,话不多说,看例题。描述冬日里的一抹暖阳总是能给人们留下深刻的记忆,人们喜爱冬天的太阳,就跟人们喜爱冬天的火锅一般。寒冷的冬天总会让人想起火锅,最近小Z特别想去吃火锅,刚好某家转转火锅刚开业有活动,有n盘火锅围成一个圈,第一盘和最后一盘是相连的,每一盘火锅都有一个...原创 2020-01-18 15:40:17 · 247 阅读 · 0 评论 -
快速幂取模
快速幂取模在学习之前,我们得明白快速幂的思想是什么?还有我们为何要使用快速幂?首先,当我们进行幂运算的时候,习惯在<math.h>库中用pow函数进行幂运算。确实方便,但是算法的时间复杂度太高,容易时间超限,所以我们需要学习一种快速幂算法。第一种:快速幂算法思想:对于2^10,如果我们把10变成二进制数——1010。表达式:0 * 2 ^ 0 + 1 * 2 ^1 + 0 *...原创 2020-01-18 15:00:03 · 265 阅读 · 0 评论