#数据结构与算法

详解vue的diff算法

我的目标是写一个非常详细的关于diff的干货,所以本文有点长。也会用到大量的图片以及代码举例,目的让看这篇文章的朋友一定弄明白diff的边边角角。先来了解几个点...1.当数据发生变化时,vue是怎么更新节点的?要知道渲染真实DOM的开销是很大的,比如有时候我们修改了某个数据,如果直接渲染到真实dom上会引起整个dom...
代码星球 代码星球·2020-04-14

浅谈数据结构之主席树(线段树进阶版)

今天看了点主席树的概念,加上飞哥上次讲的,目前对主席树有了大致的了解,简单谈谈吧,不讲代码,只讲思路,日后贴题!     Orz高级数据结构发明者主席!!最早在CLJ的课件里第一次看到了这个词,最近做区间第K大时又想起了这茬,这方面资料也挺少的,于是再次膜拜下主席,对主...

KMP算法学习(详解)

 kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现讲清楚。 k...
代码星球 代码星球·2020-04-14

神经网络算法

我们在设计机器学习系统时,特别希望能够建立类似人脑的一种机制。神经网络就是其中一种。但是考虑到实际情况,一般的神经网络(BP网络)不需要设计的那么复杂,不需要包含反馈和递归。人工智能的一大重要应用,是分类问题。本文通过分类的例子,来介绍神经网络。一个最简单的分类,是在平面上画一条直线,左边为类0,右边为类1,直线表示为...
代码星球 代码星球·2020-04-14

三维网格细分算法(Catmull-Clark subdivision & Loop subdivision)附源码(转载)

转载: https://www.cnblogs.com/shushen/p/5251070.html下图描述了细分的基本思想,每次细分都是在每条边上插入一个新的顶点,可以看到随着细分次数的增加,折线逐渐变成一条光滑的曲线。曲面细分需要有几何规则和拓扑规则,几何规则用于计算新顶点的位置,拓扑规则用于确定新顶点的...

图的基本算法(BFS和DFS)

图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。图可以分为有向图和无向图,一般用G=(V,E)来表示图。经常用邻接矩阵或者邻接表来描述一副图。在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先...
代码星球 代码星球·2020-04-14

C语言求最小公倍数和最大公约数三种算法(经典)

把以前写的一些经验总结汇个总,方便给未来的学弟学妹们做个参考!                     &nb...

RMQ问题(线段树算法,ST算法优化)

对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在[i,j]里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题主要方法及复杂度(处理复杂度和查询复杂度)如下:1.朴素(即搜索)O(n)-O(n)2.线段树(segmenttree)O(n)-O(qlogn)3.ST(...

Lucas-Kanade算法总结

Lucas-Kanade算法广泛用于图像对齐、光流法、目标追踪、图像拼接和人脸检测等课题中。 一、核心思想给定一个模板和一个输入,以及一个或多个变换,求一个参数最佳的变换,使得下式最小化在求最优解的时候,该算法假设目前的变换参数已知,并迭代的计算的增量,使得更新后的能令上式比原来更小。则上式改写为: ...
代码星球 代码星球·2020-04-14

信息学奥赛一本通算法(C++版)基础算法:高精度计算

高精度加法(大位相加)1#include<bits/stdc++.h>2usingnamespacestd;3intmain()4{5chara1[100],b1[100];6inta[100],b[100],c[100];//a,b,c分别存储加数,加数,结果7intlena,lenb,lenc,x,i;...

从零开始学算法:高精度计算

注:转载请注明:http://www.cnblogs.com/ECJTUACM-873284962/ 前言:由于计算机运算是有模运算,数据范围的表示有一定限制,如整型int(C++中int与long相同)表达范围是(-2^31~2^31-1),unsignedlong(无符号整数)是(0~2^32-1),都约...

算法--枚举策略

枚举法的基本思想是根据提出的问题枚举所有可能状态,并用问题给定的条件检验哪些是需要的,哪些是不需要的。能使命题成立,即为其解。枚举结构:循环+判断语句。 虽然枚举法本质上属于搜索策略,但是它与后面讲的回溯法有所不同。因为适用枚举法求解的问题必须满足两个条件:⑴可预先确定每个状态的元素个数n;⑵状态元素a1,a...
代码星球 代码星球·2020-04-14

零基础学并查集算法

 并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间...
代码星球 代码星球·2020-04-14

零基础学贪心算法

本文在写作过程中参考了大量资料,不能一一列举,还请见谅。贪心算法的定义:贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,只做出在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影...
代码星球 代码星球·2020-04-14

欧里几德及扩展欧里几德算法

欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。第一种证明:   a可以表示成a=kb+r,则r=amodb  假设d是a,b的...
代码星球 代码星球·2020-04-14
首页上一页...99100101102103...下一页尾页