草庐IT

现代优化算法

全部标签

javascript - encodeURIComponent算法源码

我正在使用Javascript在钛中开发一个应用程序。我需要Javascript中encodeURIComponent的开源实现。任何人都可以指导我或向我展示一些实现方法吗? 最佳答案 此函数的规范在15.1.3.4中.V8的现代版本(2018)使用C++实现它。参见src/uri.h://ES6section18.2.6.5encodeURIComponenet(uriComponent)staticMaybeHandleEncodeUriComponent(Isolate*isolate,Handlecomponent){调用u

javascript - 使用 JavaScript 展平 DOM 中的嵌套跨度以优化 HTML 编辑器输出

我需要使用JavaScript重新格式化输入HTML,以便生成的输出HTML始终是的序列包含仅一个或多个的节点节点和每个节点应该包含恰好一个#text节点。举个例子,我想转换如下所示的HTML:Thisisline#1Thisisline#2Thisisline#3Thisisline#4HTML看起来像这样:Thisisline#1Thisisline#2Thisisline#3Thisisline#4额外的,有点离题的信息:文本在TinyMCE编辑器中。HTML需要符合此模式以使应用程序更有用并提供具有可用HTML的PDF输出引擎(wkhtmltopdf如果HTMl变得过于复杂且嵌

javascript - 在 native JavaScript 中获取 Canvas 内鼠标位置的最现代方法

这个问题在这里已经有了答案:HowdoIgetthecoordinatesofamouseclickonacanvaselement?[duplicate](22个答案)关闭3年前。首先,我知道这个问题已经被问过很多次了。但是,提供的答案并不一致,使用了多种方法来获取鼠标位置。几个例子:方法一:canvas.onmousemove=function(event){//thisobjectreferstocanvasobjectMouse={x:event.pageX-this.offsetLeft,y:event.pageY-this.offsetTop}}方法二:functionge

javascript - 是否有像 bcrypt 这样的慢速 Javascript 哈希算法?

我不是在谈论服务器端node.js。我想对我网站客户端的key使用慢散列算法。我找到了SHA-256的实现哪个seemtobereliable.我还找到了thisquestion这导致了OPcreatinghisownlibrary.但是,我不确定我是否应该只进行多轮SHA散列或信任其中的一些代码,因为我不是安全专家而且它似乎没有大量的追随者只是被“盯着”36人。在这种情况下最好的选择是什么?一旦我选择了某些东西,我(基本上)就不能改变方法。我想要一个慢散列(不是加密)算法,我宁愿它产生一个短字符串。例如,60个字符的慢速bcrypt与70个字符的快速SHA-256。

javascript - Grunt imagemin - 观看多个文件/文件夹优化单个文件?

是否可以使用grunt-contrib-imagemine和grunt-contrib-watch查看多个文件/文件夹但只优化单个文件?我这样试过:(gruntfile的一部分)imagemin:{dist:{cwd:'images/modules',files:['images/modules/**/*.{png,jpg,gif}'],dest:'images/modules'}},watch:{images:{files:['images/modules/**/*.{png,jpg,gif}'],tasks:['imagemin'],options:{spawn:false,}}}

使用 `new Function()` 优化 Javascript

在阅读文档时,我发现了一个可以大大提高javascript性能的简单优化。原代码:functionparseRow(columns,parser){varrow={};for(vari=0;i优化代码:varcode='return{\n';columns.forEach(function(column){code+='"'+column.name+'":'+'parser.readColumnValue(),\n';});code+='};\n';varparseRow=newFunction('columns','parser',code);在这里找到:https://github

javascript - 使用高效算法对数组中的相同对进行计数

问题陈述:a[]是n个数的数组,数组中相同对的计数,使得0p,q是对的索引。a[3,5,6,3,3,5]n=6这里相同对的数目是4,它们是(0,3),(0,4),(3,4),(1,5)且不(2,2)或(4,3)违反p条件。解决方案1:functiongetIdenticalPairs(a,n){varidenticalPairs=0;for(vari=0;i这段代码工作得很好,但它的时间复杂度似乎是o(n2)。我尝试的第二个解决方案是,解决方案2:使用组合公式,相同对的nos,ncrvaridenticalPairs=0;functiongetIdenticalPairs(a,n){v

javascript - 优化 JavaScript 加载的最佳实践

我在网上阅读了几篇关于优化javascript加载的文章。我得到的几个关键点是最小化脚本文件(http请求)的数量,缩小并在服务器上启用gzip。目前,我这边所做的是缩小所有javascript文件,并且也可以简单地启用gzip。第1部分)我的问题是我有大约20个javascript文件,其中一个common.js具有所有核心功能。除此之外,每个页面都会加载至少一个实现该页面功能的其他文件。解决方案1,是将所有脚本合并到一个大脚本文件中,并为每个客户端加载一次,这似乎是其他人正在做的。我猜YUI或者JSMin可以用来压缩,所以我应该手动合并文件?解决方案2,当需要一个必需的功能时延迟加

javascript - 最小交叉点布局算法

我想知道是否有任何图形的最小交点布局算法(不是基于力的)示例,因此我可以将其适应d3.js。 最佳答案 计算最小化边交叉的图形布局是NP-hard,因此没有单一的算法;有不同的算法具有不同的权衡。基于力的布局(Fruchterman–Reingold)是一种方法,分层(Sugiyama)是另一种方法。还有针对特定类型图形的布局,例如树(Reingold–Tilford)和小世界(vanHam–vanWijk)。诸如Dig-CoLa(Dwyer–Koren)之类的约束布局是另一类算法。如果您想要一种专门寻求最小化边缘交叉数的算法,您可

javascript - A* 算法 : closed list contains too many elements/too large

我目前正在用JavaScript实现A*算法。但是,我遇到了一个问题:我的closedList似乎太大了。这是输出的屏幕截图:什么会导致这个问题?我的启发式计算有误吗?Node.prototype.getHeuristic=function(pos0,pos1){//ManhattenDistancevarhorizontalDistance=Math.abs(pos1.x-pos0.x);varverticalDistance=Math.abs(pos1.y-pos0.y);returnhorizontalDistance+verticalDistance;}还是我在这个方法中理解/