随笔分类 -  javascript算法

通过实际的问题,用算法求解的例子
摘要://矩阵运算的函数 ;(function(global){ global.Matrix = { //生成对角矩阵,非零元素都为1 eye : function( n ){ var result = []; var arr; for ( var i = 0; i 0 ) { ... 阅读全文
posted @ 2017-03-06 17:39 无工时代 阅读(506) 评论(0) 推荐(0)
摘要:function getInfo(html){ //去掉注释 html=html.replace(//g,"") var arrP=[] var reg=/]*>|>)[\d\D]*?/gi html.replace(reg,function(m){ if(/^/gi.test(m)){ m= m.replace(... 阅读全文
posted @ 2017-03-06 17:37 无工时代 阅读(228) 评论(0) 推荐(0)
摘要:题目 输入数组为a[p:r],通过排序算法使其有序。 思路 (1)划分,取出x=a[p]为基准将a[p:r]划分为3:a[p:q-1],a[q],a[q+1:r],使a[p:q-1]中任一元素<=a[q], a[q]<=a[q+1:r] (2)递归调用 ,对a[p:q-1]和a[q+1:r]进行同样 阅读全文
posted @ 2016-10-18 17:56 无工时代 阅读(975) 评论(0) 推荐(0)
摘要:题目 求正整数n的不同划分个数。 例如,正整数6有如下11中不同的划分:6;5+1;4+2;4+1+1;3+3;3+2+1;3+1+1+1;2+2+2;2+2+1+1;2+1+1+1+1;1+1+1+1+1+1. 思路 如果设p(n)为正整数n的划分数,则难以找到递归关系,因此考虑增加一个自变量:将 阅读全文
posted @ 2016-10-18 17:04 无工时代 阅读(260) 评论(0) 推荐(0)
摘要:题目 已知集合R={r1,r2,…,rn},请设计一个算法生成集合R中n个元素的全排列。 思路 令Rj=R-{rj} 记集合X中元素的全排列记为perm(X)。那么(rj)perm(X)表示在全排列perm(X)的每一种排列前加上前缀rj所得到的全排列。所以,R的全排列可归纳为 perm(R)={ 阅读全文
posted @ 2016-10-18 16:58 无工时代 阅读(194) 评论(0) 推荐(0)
摘要:可以生成中文、英文、数字字典,暴力破解密码,暴力爬虫 阅读全文
posted @ 2016-04-27 15:09 无工时代 阅读(632) 评论(0) 推荐(0)
摘要:求墙之间有多少水洼 阅读全文
posted @ 2016-03-31 17:45 无工时代 阅读(179) 评论(0) 推荐(0)
摘要://给定平面上的n个点,求距离最近的两个点的距离。 //比较y var A=[{ x:6, y:61 },{ x:6, y:67 },{ x:43, y:71 },{ x:39, y:107 },{ x:189, y:140 }] //按照x排序 y排序 A.sort(function(a,b){ if(a... 阅读全文
posted @ 2016-01-12 16:14 无工时代 阅读(1719) 评论(1) 推荐(0)
摘要://js数组去重//思路:// 1.放入第一个元素// 2.放入第n个元素,和第n个之前的元素就行比较,如果有重复,则跳过。没有重复就加入数组中// 3.返回新的去重后数组Array.prototype.removeRepeat=function(isRepeat){ var onleArr=... 阅读全文
posted @ 2015-12-10 14:58 无工时代 阅读(241) 评论(0) 推荐(0)
摘要://比较2中数组随机排序方法的效率 JavaScript版//randon1思路//当len=5时候,从0-5中随机3一个放入i=0,// 从0-3随机一个2放入i=2// 从0-2随机一个1放入i=4// 从0-1随机一个0放入i=1// 从4-5随机一个5放入i=3//当len=10时候,从0-... 阅读全文
posted @ 2015-12-03 12:27 无工时代 阅读(421) 评论(0) 推荐(0)
摘要:Object.extend=function(props){ //继承父类 var prototype=Object.create(this.prototype) //初始化函数ctor var _Class=function(){ if (this.ctor) this.ctor.apply(this, arguments... 阅读全文
posted @ 2015-11-26 19:06 无工时代
摘要:/** * Created by caoke on 2015/11/21. *///二叉树 特点父节点比子节点小var Tree2=function(){ //初始化 二叉树的子元素 this.children=[];}Tree2.prototype={ push:function... 阅读全文
posted @ 2015-11-21 17:54 无工时代 阅读(592) 评论(0) 推荐(0)
摘要:var Point=function(x,y){ this.x= Number(x.toFixed(2))||0; this.y=Number(y.toFixed(2))||0;}Point.prototype={ /*~!Vector*/ toArray:function(... 阅读全文
posted @ 2015-11-10 00:06 无工时代 阅读(3835) 评论(0) 推荐(0)
摘要:编辑距离概念描述: 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 例如将kitten一字转成sitting: 俄罗斯科学家Vladimir Levenshtein在196 阅读全文
posted @ 2015-11-08 18:22 无工时代 阅读(1445) 评论(0) 推荐(0)
摘要://算法-计数排序var cc=cc||consolefunction counting_sort(A,B,k){ var C=[] for(var i=0;i=0;i--){ B[C[A[j]]]=A[j] C[A[j]]=C[A[j]]-1 }} 阅读全文
posted @ 2015-04-03 12:55 无工时代 阅读(159) 评论(0) 推荐(0)
摘要://算法-快速排序var cc=cc||consolefunction exchange(A,p1,p2){ if(p1!=p2){ var temp=A[p1] A[p1]=A[p2] A[p2]=temp }}function quicksort(A,p,r){ if(p[ 1, 3, 12, ... 阅读全文
posted @ 2015-04-03 12:54 无工时代 阅读(201) 评论(0) 推荐(0)
摘要://堆排序研究var cc=cc||consolefunction parent(i){ return i>>1}function left(i){ return 2*i+1}function right(i){ return 2*i+2}function exchange(A,p1,p2){ va... 阅读全文
posted @ 2015-04-03 12:52 无工时代 阅读(160) 评论(0) 推荐(0)
摘要://分治算法研究 搜索数组中的最长连续递增子集var cc=consolefunction find_max_crossing_lenarray(A,low,mid,high){ var max_left=mid,max_right=mid var left_sum=1 var sum=0 for(... 阅读全文
posted @ 2015-04-03 12:51 无工时代 阅读(273) 评论(0) 推荐(0)
摘要://分治算法研究var cc=consolefunction find_max_crossing_subarray(A,low,mid,high){ var max_left=mid,max_right=mid var left_sum=0 var sum=0 for(var i=mid;i>=lo... 阅读全文
posted @ 2015-04-03 12:50 无工时代 阅读(296) 评论(0) 推荐(0)
摘要:Function.prototype.before=function(func){var _self=this;return function(){if(func.apply(this,arguments)==false){return false;}return _self.apply(this,... 阅读全文
posted @ 2015-04-03 12:49 无工时代 阅读(541) 评论(0) 推荐(0)