學習JS,就應該知道數據結構與算法這個詞。現在我們就說說:
數據結構與算法在編程中是十分需要,主要是沒有很好的數據結構與算法的功底,就影響后續學習和工作,這是為什么那?是因為隨著項目的復雜,數據量也隨之變大,數據結構與算法可以更優雅的處理這些數據。
程序=數據結構+算法,是計算機科學界的一個經典名句,這句話也體現了一個應用程序是與數據結構和算法密不可分的。
數據結構
其實數據結構簡單說就是計算機存儲和組織數據的一種方式,指相互之間存在一種或者多種特定關系的集合。只要是用于在不同的場景可以幫助我們選擇更適合的數據結構,也可以讓應用程序帶來更好的運行效率和存儲效率。
常見的數據結構
常見的一些數據結構主要有以下幾種:
數組(Array):數組是一種聚合數據類型,它是將具有數據類型的的一些變量有序的組織到一起的一個集合;
優點是插入快;缺點是查找、刪除慢,只能存儲單一類型的元素;
**鏈表(Linked List):**鏈表是一種數據元素按照鏈式存儲結構進行存儲的數據結構,這種存儲結構具有在物理上存在非連續的特點。
優點是插入、刪除快;缺點是查找慢;
**棧(Stack):**棧是一種特殊的線性表,它只能在一個表的一個固定端進行數據結點的插入和刪除操作。
優點是提供先進后出的存儲方式,缺點是對其他項操作都很慢;
**隊列(Queue):**隊列和棧類似,也是一種特殊的線性表。和棧不同的是,隊列只允許在表的一端進行插入操作,而在另一端進行刪除操作。
優點是提供先進先出的存儲方式,缺點是對其他項操作都很慢;
**樹(Tree):**樹是典型的非線性結構,它是包括,2 個結點的有窮集合 K。
**圖(Graph):**圖是另一種非線性數據結構。在圖結構中,數據結點一般稱為頂點,而邊是頂點的有序偶對。
算法
算法簡而言之就是解決問題的步驟,對特定問題求解步驟的一種描述,他的定義的是解決特定問題求解步驟的準確而完整的描述,在計算機中表現為一系列指令的集合,算法代表著用系統的方法描述解決問題的策略機制。
舉兩個例子來說明一下什么是算法:
去北京看演唱會:首先我們需要確定地點、然后購買門票、車票、入場、看演唱會、演唱會結束
把大象裝進冰箱:把冰箱門打開,大象塞進去,關上冰箱門。
雖然把大象裝進冰箱這是一個玩笑話,假設這真的是一個問題,解決問題的步驟適用于任何動物。
算法的特征
算法具有以下五個特征:
有窮性:對于任意一組合法輸入值,在執行有窮步驟之后一定能結束,即:算法中的每個步驟都能在有限時間內完成。
確定性:在每種情況下所應執行的操作,在算法中都有確切的規定,使算法的執行者或閱讀者都能明確其含義及如何執行。并且在任何條件下,算法都只有一條執行路徑。
可行性:算法中的所有操作都必須足夠基本,都可以通過已經實現的基本操作運算有限次實現之。
有輸入:作為算法加工對象的量值,通常體現在算法當中的一組變量。有些輸入量需要在算法執行的過程中輸入,而有的算法表面上可以沒有輸入,實際上已被嵌入算法之中。
有輸出:它是一組與“輸入”有確定關系的量值,是算法進行信息加工后得到的結果,這種確定關系即為算法功能。
算法的目標
一個優秀的算法需要追求以下兩個目標:
運行所需的時間更少和占用的內存空間更小
這兩點很符合我們的需求,要解決時間復雜度和空間復雜度。這里只是講解數據結構淺顯知識,后續我們會講到更多深入內容。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127827.html
摘要:強烈推薦上值得前端學習的數據結構與算法項目,包含圖的演示過程與視頻講解。該倉庫包含了多種基于的算法與數據結構,提供進一步閱讀的解釋和鏈接。數據結構和算法必知必會的個代碼實現。 showImg(https://segmentfault.com/img/bVbvpYZ); 前言 算法為王。想學好前端,先練好內功,內功不行,就算招式練的再花哨,終究成不了高手;只有內功深厚者,前端之路才會走得...
摘要:筆者作為一位,將工作以來用到的各種優秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數組的極值技巧使你的更加專業前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續更新… 一、...
摘要:筆者作為一位,將工作以來用到的各種優秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數組的極值技巧使你的更加專業前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續更新… 一、...
摘要:今天同學去面試,做了兩道面試題全部做錯了,發過來給道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 排序算法 -- JavaScript 標準參考教程(alpha) - 前端 - 掘金來自《JavaScript 標準參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現 選擇排序 簡介 算法實現 ... 圖例詳解那道 setTimeout 與循環閉包的經典面...
閱讀 547·2023-03-27 18:33
閱讀 732·2023-03-26 17:27
閱讀 630·2023-03-26 17:14
閱讀 591·2023-03-17 21:13
閱讀 521·2023-03-17 08:28
閱讀 1801·2023-02-27 22:32
閱讀 1292·2023-02-27 22:27
閱讀 2178·2023-01-20 08:28