文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

面试官:说说你对算法的理解?应用场景?

2024-12-02 21:04

关注

一、是什么

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制

也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出

如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题

一个程序=算法+数据结构,数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的,两者不可分割

因此,算法的设计和选择要同时结合数据结构,简单地说数据结构的设计就是选择存储方式,如确定问题中的信息是用数组存储还是用普通的变量存储或其他更加复杂的数据结构

针对上述,可以得出一个总结:不同的算法可能用不同的时间、空间或效率来完成同样的任务

二、特性

关于算法的五大特性,有如下:

三、应用场景

在前端领域中,数据结构与算法无法不在,例如现在的vue或者react项目,实现虚拟DOM或者Fiber结构,本质就是一种数据结构,如下一个简单的虚拟DOM:

  1.   type: 'div'
  2.     props: { 
  3.       name'lucifer' 
  4.     }, 
  5.       children: [{ 
  6.         type: 'span'
  7.         props: {}, 
  8.         children: [] 
  9.       }] 

vue与react都能基于基于对应的数据结构实现diff算法,提高了整个框架的性能以及拓展性

包括在前端javascript编译的时候,都会生成对应的抽象语法树AST,其本身不涉及到任何语法,因此你只要编写相应的转义规则,就可以将任何语法转义到任何语法,也是babel, PostCSS, prettier, typescript

除了这些框架或者工具底层用到算法与数据结构之外,日常业务也无处不在,例如实现一个输入框携带联想功能,如下:

如果我们要实现这个功能, 则可以使用前缀树,如下:

包括前端可能会做一些对字符串进行相似度检测,例如"每日一题"和"js每日一题"两个字符串进行相似度对比,这种情况可以通过“最小编辑距离”算法,如果a和b的编辑距离越小,我们认为越相似

日常在编写任何代码的都需要一个良好的算法思维,选择好的算法或者数据结构,能让整个程序效率更高

参考文献

https://baike.baidu.com/item/%E7%AE%97%E6%B3%95/209025

 

https://lucifer.ren/blog/2019/09/18/algorthimn-fe-1/

 

来源:JS每日一题内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯