javascript的数据结构和算法

有人会问前端需要会数据结构吗,前端需要会算法吗?这些针对内存和cpu的家伙对我来说有什么用呢?如果你问一个前端工程狮,工作中遇到遇到的数据结构问题,他一脸蒙蔽,“老子不用数据结构,照样能写出来老板需要的代码。学数据结构有求用”。如果只做前端的话数据结构确实没用。链表,散列表,队列,栈。前端最多弄个数组(var ary=[]);说排序算法更是扯淡,数组自带排序函数sort,方便的很。更别提什么二叉树,竞赛树,红黑树,AVL树,还有图,统统没用。所以后端总是嘲笑前端,这是一群做ui的家伙,根本就不懂程序。也许你会问:作为前端工程师真的不用懂数据结构吗?确实不用懂数据结构,假如你知道了链表,散列,字典,有用吗?估计这辈子也用不上,v8内存自动回收,注意内存泄漏就行,并且js只有object,和arry,function,null,number,symbel,bool,string。上帝根本就没有给你机会使用这些牛逼的东西(其实后端工程师也不一定怎么懂)。

       既然这样,前端工程师会想:那算法也没用了,算法以数据结构为基础,优化程序的时间或者空间复杂度的。片面,其实算法还是很有用的,这个东西永远都不会过时,就是将一个问题的解决转化为数学表达,在转化为电脑程序,这可能是复制粘贴程序员和资深程序员的区别了。并且在工作中也是很常见的。例如:

jquery有一树型插件,需要的数据结构是这样的,

{
name:"top",
value:"bumen",
children:[{
name:"son",
value:'kankan',
children:[{
name:"sun"
value:"dsfasd"
},{

}]
},{

}]
}

 

可是后端查询数据库,返回的是对象数组结构是这样的:

[{name:"asdfasd",value:"asdfsadf",children:"indexwe"},{name:'',value:"",children:none}];

这时你不得不转化数据,这只是一个简单的例子,所以前端工程师是要懂算法思想的。算法思想有哪些呢?

大概分为一下5种,贪婪算法,分而治之,动态规划,回溯法,以及分支界定法。下一篇文章开始讲解。

posted @ 2018-12-24 20:21  node-吉利  阅读(314)  评论(0编辑  收藏  举报