成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript數(shù)據(jù)結(jié)構(gòu)與算法

3403771864 / 353人閱讀

  學(xué)習(xí)JS,就應(yīng)該知道數(shù)據(jù)結(jié)構(gòu)與算法這個詞。現(xiàn)在我們就說說

  數(shù)據(jù)結(jié)構(gòu)與算法在編程中是十分需要,主要是沒有很好的數(shù)據(jù)結(jié)構(gòu)與算法的功底,就影響后續(xù)學(xué)習(xí)和工作,這是為什么那?是因為隨著項目的復(fù)雜,數(shù)據(jù)量也隨之變大,數(shù)據(jù)結(jié)構(gòu)與算法可以更優(yōu)雅的處理這些數(shù)據(jù)。

  程序=數(shù)據(jù)結(jié)構(gòu)+算法,是計算機科學(xué)界的一個經(jīng)典名句,這句話也體現(xiàn)了一個應(yīng)用程序是與數(shù)據(jù)結(jié)構(gòu)和算法密不可分的。

  數(shù)據(jù)結(jié)構(gòu)

  其實數(shù)據(jù)結(jié)構(gòu)簡單說就是計算機存儲和組織數(shù)據(jù)的一種方式,指相互之間存在一種或者多種特定關(guān)系的集合。只要是用于在不同的場景可以幫助我們選擇更適合的數(shù)據(jù)結(jié)構(gòu),也可以讓應(yīng)用程序帶來更好的運行效率和存儲效率。

  常見的數(shù)據(jù)結(jié)構(gòu)

  常見的一些數(shù)據(jù)結(jié)構(gòu)主要有以下幾種:

  數(shù)組(Array):數(shù)組是一種聚合數(shù)據(jù)類型,它是將具有數(shù)據(jù)類型的的一些變量有序的組織到一起的一個集合;

  優(yōu)點是插入快;缺點是查找、刪除慢,只能存儲單一類型的元素;

  **鏈表(Linked List):**鏈表是一種數(shù)據(jù)元素按照鏈?zhǔn)酱鎯Y(jié)構(gòu)進(jìn)行存儲的數(shù)據(jù)結(jié)構(gòu),這種存儲結(jié)構(gòu)具有在物理上存在非連續(xù)的特點。

  優(yōu)點是插入、刪除快;缺點是查找慢;

  **棧(Stack):**棧是一種特殊的線性表,它只能在一個表的一個固定端進(jìn)行數(shù)據(jù)結(jié)點的插入和刪除操作。

  優(yōu)點是提供先進(jìn)后出的存儲方式,缺點是對其他項操作都很慢;

  **隊列(Queue):**隊列和棧類似,也是一種特殊的線性表。和棧不同的是,隊列只允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。

  優(yōu)點是提供先進(jìn)先出的存儲方式,缺點是對其他項操作都很慢;

  **樹(Tree):**樹是典型的非線性結(jié)構(gòu),它是包括,2 個結(jié)點的有窮集合 K。

  **圖(Graph):**圖是另一種非線性數(shù)據(jù)結(jié)構(gòu)。在圖結(jié)構(gòu)中,數(shù)據(jù)結(jié)點一般稱為頂點,而邊是頂點的有序偶對。

  算法

  算法簡而言之就是解決問題的步驟,對特定問題求解步驟的一種描述,他的定義的是解決特定問題求解步驟的準(zhǔn)確而完整的描述,在計算機中表現(xiàn)為一系列指令的集合,算法代表著用系統(tǒng)的方法描述解決問題的策略機制。

  舉兩個例子來說明一下什么是算法:

  去北京看演唱會:首先我們需要確定地點、然后購買門票、車票、入場、看演唱會、演唱會結(jié)束

  把大象裝進(jìn)冰箱:把冰箱門打開,大象塞進(jìn)去,關(guān)上冰箱門。

  雖然把大象裝進(jìn)冰箱這是一個玩笑話,假設(shè)這真的是一個問題,解決問題的步驟適用于任何動物。

  算法的特征

  算法具有以下五個特征:

  有窮性:對于任意一組合法輸入值,在執(zhí)行有窮步驟之后一定能結(jié)束,即:算法中的每個步驟都能在有限時間內(nèi)完成。

  確定性:在每種情況下所應(yīng)執(zhí)行的操作,在算法中都有確切的規(guī)定,使算法的執(zhí)行者或閱讀者都能明確其含義及如何執(zhí)行。并且在任何條件下,算法都只有一條執(zhí)行路徑。

  可行性:算法中的所有操作都必須足夠基本,都可以通過已經(jīng)實現(xiàn)的基本操作運算有限次實現(xiàn)之。

  有輸入:作為算法加工對象的量值,通常體現(xiàn)在算法當(dāng)中的一組變量。有些輸入量需要在算法執(zhí)行的過程中輸入,而有的算法表面上可以沒有輸入,實際上已被嵌入算法之中。

  有輸出:它是一組與“輸入”有確定關(guān)系的量值,是算法進(jìn)行信息加工后得到的結(jié)果,這種確定關(guān)系即為算法功能。

  算法的目標(biāo)

  一個優(yōu)秀的算法需要追求以下兩個目標(biāo):

  運行所需的時間更少和占用的內(nèi)存空間更小

  這兩點很符合我們的需求,要解決時間復(fù)雜度空間復(fù)雜度。這里只是講解數(shù)據(jù)結(jié)構(gòu)淺顯知識,后續(xù)我們會講到更多深入內(nèi)容。


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127827.html

相關(guān)文章

  • 優(yōu)秀程序員都應(yīng)該學(xué)習(xí)的 GitHub 上開源的數(shù)據(jù)結(jié)構(gòu)算法項目

    摘要:強烈推薦上值得前端學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)與算法項目,包含圖的演示過程與視頻講解。該倉庫包含了多種基于的算法與數(shù)據(jù)結(jié)構(gòu),提供進(jìn)一步閱讀的解釋和鏈接。數(shù)據(jù)結(jié)構(gòu)和算法必知必會的個代碼實現(xiàn)。 showImg(https://segmentfault.com/img/bVbvpYZ); 前言 算法為王。想學(xué)好前端,先練好內(nèi)功,內(nèi)功不行,就算招式練的再花哨,終究成不了高手;只有內(nèi)功深厚者,前端之路才會走得...

    cheukyin 評論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業(yè)這是上關(guān)于技巧的一篇譯文,另外你也可以在本項目看到原文。列舉了一些很實用的技巧,比如給空內(nèi)容的標(biāo)簽添加內(nèi)容,逗號分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學(xué)者更好的掌握排序算法的實現(xiàn)。 成為專業(yè)程序員路上用到的各種優(yōu)秀資料、神器及框架 成為一名專業(yè)程序員的道路上,需要堅持練習(xí)、學(xué)習(xí)與積累,技術(shù)方面既要有一定的廣度,更要有自己的深度。 Java...

    DangoSky 評論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業(yè)這是上關(guān)于技巧的一篇譯文,另外你也可以在本項目看到原文。列舉了一些很實用的技巧,比如給空內(nèi)容的標(biāo)簽添加內(nèi)容,逗號分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學(xué)者更好的掌握排序算法的實現(xiàn)。 成為專業(yè)程序員路上用到的各種優(yōu)秀資料、神器及框架 成為一名專業(yè)程序員的道路上,需要堅持練習(xí)、學(xué)習(xí)與積累,技術(shù)方面既要有一定的廣度,更要有自己的深度。 Java...

    zgbgx 評論0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:筆者作為一位,將工作以來用到的各種優(yōu)秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數(shù)組的極值技巧使你的更加專業(yè)前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經(jīng)常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續(xù)更新… 一、...

    Jonathan Shieber 評論0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:筆者作為一位,將工作以來用到的各種優(yōu)秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數(shù)組的極值技巧使你的更加專業(yè)前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經(jīng)常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續(xù)更新… 一、...

    SHERlocked93 評論0 收藏0
  • Deep in JS - 收藏集 - 掘金

    摘要:今天同學(xué)去面試,做了兩道面試題全部做錯了,發(fā)過來給道典型的面試題前端掘金在界中,開發(fā)人員的需求量一直居高不下。 排序算法 -- JavaScript 標(biāo)準(zhǔn)參考教程(alpha) - 前端 - 掘金來自《JavaScript 標(biāo)準(zhǔn)參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現(xiàn) 選擇排序 簡介 算法實現(xiàn) ... 圖例詳解那道 setTimeout 與循環(huán)閉包的經(jīng)典面...

    enali 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<