成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:說說你對算法的理解?應用場景?

開發(fā) 前端 算法
算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機制。

[[424227]]

一、是什么

算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機制

也就是說,能夠對一定規(guī)范的輸入,在有限時間內(nèi)獲得所要求的輸出

如果一個算法有缺陷,或不適合于某個問題,執(zhí)行這個算法將不會解決這個問題

一個程序=算法+數(shù)據(jù)結構,數(shù)據(jù)結構是算法實現(xiàn)的基礎,算法總是要依賴于某種數(shù)據(jù)結構來實現(xiàn)的,兩者不可分割

因此,算法的設計和選擇要同時結合數(shù)據(jù)結構,簡單地說數(shù)據(jù)結構的設計就是選擇存儲方式,如確定問題中的信息是用數(shù)組存儲還是用普通的變量存儲或其他更加復雜的數(shù)據(jù)結構

針對上述,可以得出一個總結:不同的算法可能用不同的時間、空間或效率來完成同樣的任務

二、特性

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

  • 有限性(Finiteness):一個算法必須保證執(zhí)行有限步之后結束
  • 確切性(Definiteness):一個算法的每一步驟必須有確切的定義
  • 輸入(Input):一個算法有零個或多個輸入,以刻畫運算對象的初始情況,所謂零個輸入是指算法本身給定了初始條件
  • 輸出(Output):一個算法有一個或多個輸出。沒有輸出的算法毫無意義
  • 可行性(Effectiveness):算法中執(zhí)行的任何計算步驟都是可以被分解為基本的可執(zhí)行的操作步驟,即每個計算步驟都可以在有限時間內(nèi)完成(也稱之為有效性)

三、應用場景

在前端領域中,數(shù)據(jù)結構與算法無法不在,例如現(xiàn)在的vue或者react項目,實現(xiàn)虛擬DOM或者Fiber結構,本質就是一種數(shù)據(jù)結構,如下一個簡單的虛擬DOM:

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

vue與react都能基于基于對應的數(shù)據(jù)結構實現(xiàn)diff算法,提高了整個框架的性能以及拓展性

包括在前端javascript編譯的時候,都會生成對應的抽象語法樹AST,其本身不涉及到任何語法,因此你只要編寫相應的轉義規(guī)則,就可以將任何語法轉義到任何語法,也是babel, PostCSS, prettier, typescript

除了這些框架或者工具底層用到算法與數(shù)據(jù)結構之外,日常業(yè)務也無處不在,例如實現(xiàn)一個輸入框攜帶聯(lián)想功能,如下:

如果我們要實現(xiàn)這個功能, 則可以使用前綴樹,如下:

包括前端可能會做一些對字符串進行相似度檢測,例如"每日一題"和"js每日一題"兩個字符串進行相似度對比,這種情況可以通過“最小編輯距離”算法,如果a和b的編輯距離越小,我們認為越相似

日常在編寫任何代碼的都需要一個良好的算法思維,選擇好的算法或者數(shù)據(jù)結構,能讓整個程序效率更高

參考文獻

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

 

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

 

責任編輯:武曉燕 來源: JS每日一題
相關推薦

2021-11-09 08:51:13

模式命令面試

2021-11-05 07:47:56

代理模式對象

2021-11-10 07:47:49

組合模式場景

2021-11-03 14:10:28

工廠模式場景

2021-08-16 08:33:26

git

2021-10-18 07:51:39

回溯算法面試

2021-09-06 10:51:27

TypeScriptJavaScript

2021-09-28 07:12:09

測試路徑

2021-11-22 23:50:59

責任鏈模式場景

2021-11-11 16:37:05

模板模式方法

2021-09-29 07:24:20

場景數(shù)據(jù)

2021-09-10 06:50:03

TypeScript裝飾器應用

2021-10-13 18:01:33

快速排序場景

2021-10-08 09:59:32

冒泡排序場景

2021-09-08 07:49:34

TypeScript 泛型場景

2021-10-09 10:25:41

排序應用場景

2021-11-04 06:58:32

策略模式面試

2021-06-01 08:25:06

Node.jsJavaScript運行

2021-05-31 10:35:34

TCPWebSocket協(xié)議

2021-10-11 09:38:41

開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产1区| 国产精品视频网站 | 日本中文字幕在线观看 | 精品一区二区在线看 | 99免费精品视频 | 成人高清网站 | 久久久人成影片一区二区三区 | 日韩高清国产一区在线 | 中文无码日韩欧 | 九九热在线精品视频 | 91色网站| 一区二区三区欧美大片 | 小草久久久久久久久爱六 | 伊人手机在线视频 | 日韩成人免费av | 成人一区在线观看 | 国产麻豆一区二区三区 | 人人干97| 精品美女| 天天成人综合网 | 欧美一区二区三区国产精品 | 中文天堂在线一区 | a在线观看 | 高清亚洲| 国精产品一区一区三区免费完 | 日韩在线免费播放 | 亚洲午夜在线 | 九九色九九 | 久久久久亚洲精品中文字幕 | jⅰzz亚洲| 久久精品99久久 | 中文字幕第十五页 | 国产高清精品在线 | 成人在线免费观看 | 凹凸日日摸日日碰夜夜 | 蜜桃毛片| 欧美在线观看一区二区 | 精品一区二区在线观看 | 色播av| 精品一区二区三区入口 | 亚洲视频免费在线观看 |