更新時間:2020-10-28 16:36:25 來源:動力節點 瀏覽1515次
數據結構是指相互之間存在一種或多種特定關系的數據元素的集合,數據結構也是計算機存儲、組織數據的方式,通常情況下,良好的的數據結構可以帶來更高的運行或者存儲效率,往往與性能、優化話題相關 。
數據結構
棧:一種遵從先進后出(LIFO)原則的有序集合;新添加的或待刪除的元素都保存在棧的末尾,稱作棧頂,另一端為棧底。在棧里,新元素都靠近棧頂,舊元素都接近棧底。
隊列:與上相反,一種遵循先進先出(FIFO/First In First Out)原則的一組有序的項;隊列在尾部添加新元素,并從頭部移除元素。最新添加的元素必須排在隊列的末尾。
鏈表:存儲有序的元素集合,但不同于數組,鏈表中的元素在內存中并不是連續放置的;每個元素由一個存儲元素本身的節點和一個指向下一個元素的引用(指針/鏈接)組成。
集合:由一組無序且唯一(即不能重復)的項組成;這個數據結構使用了與有限集合相同的數學概念,但應用在計算機科學的數據結構中。
字典:以[鍵,值]對為數據形態的數據結構,其中鍵名用來查詢特定元素,類似于Javascript中的Object。
散列:根據關鍵碼值(Key value)直接進行訪問的數據結構;它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度;這個映射函數叫做散列函數,存放記錄的數組叫做散列表。
樹:由n(n>=1)個有限節點組成一個具有層次關系的集合;把它叫做“樹”是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的,基本呈一對多關系,樹也可以看做是圖的特殊形式。
圖:圖是網絡結構的抽象模型;圖是一組由邊連接的節點(頂點);任何二元關系都可以用圖來表示,常見的比如:道路圖、關系圖,呈多對多關系。
算法
排序算法
冒泡排序:比較任何兩個相鄰的項,如果第一個比第二個大,則交換它們;元素項向上移動至正確的順序,好似氣泡上升至表面一般,因此得名。
選擇排序:每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,以此循環,直至排序完畢。
插入排序:將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,此算法適用于少量數據的排序,時間復雜度為O(n^2)。
歸并排序:將原始序列切分成較小的序列,只到每個小序列無法再切分,然后執行合并,即將小序列歸并成大的序列,合并過程進行比較排序,只到最后只有一個排序完畢的大序列,時間復雜度為O(n log n)。
快速排序:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行上述遞歸排序,以此達到整個數據變成有序序列,時間復雜度為O(n log n)。
動力節點Java數據結構與算法實戰視頻:http://m.dabaquan.cn/javavideo/190.html
以上就是對“數據結構與算法視頻教程哪個好”的介紹,希望對大家有所幫助,還想學習更多關于Java的課程,可以關注動力節點官網Java視頻教程,免費下載學習。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習