上一週的培訓課程,講了數據結構和算法的一些初步知識,而後就是複習第一階段,週五則是進行了考試。面試
考試的結果不是很滿意,有一些知識漏洞應該是要掌握的,可是卻由於本身的偷懶,沒有去認真記憶。並且如今須要瞭解一下更深刻的知識,爲之後的面試打下基礎。算法
考試的錯題總結已經完成。數組
- 數據結構
- 邏輯數據結構、物理數據結構。
- 數據、數據項、數據元素、數據對象、數據結構。這幾者之間的關係,數據結構就是相互之間存在一種或多種特定關係的數據元素的集合。
- 集合:數據元素之間除了同屬一個集合以外不存在任何關係(關係集合爲空)
- 線性結構:除第一個元素以外,每個元素都僅有一個直接前驅元素,除最後一個元素以外,每一個數據元素有且僅有一個直接後驅元素。
- 樹狀結構:除了原始根元素之外,每一個數據僅有一個直接前驅元素,可是能夠有多個直接後驅元素。
- 圖結構:每一個數據均可以有多個直接前驅元素和多個直接後驅元素。
- 數據的存儲結構:
- 順序存儲結構
- 鏈式存儲結構
- 棧、隊列。
- 二叉樹
- 徹底二叉樹,滿二叉樹。
- 二叉樹的先序遍歷、中序遍歷、後序遍歷三種遍歷方法。
- 三種遍歷方法的程序實現。(使用遞歸方法來實現,用數組實現和用鏈表實現)。
- 算法
- 時間複雜度、空間複雜度。
- 時間複雜度:該語句被執行的次數、每條語句被執行的時間。
- 空間複雜度:執行語句時,所使用到的內存空間大小。
- 遞歸
- 方法調用方法自己。在多個函數調用嵌套時,按照後調用先返回的原則處理。
- 排序
- 冒泡排序
- 將大數依次日後移一位,循環變量從大到小。
- 選擇排序
- 將小數的下標保存下來,而後交換位置。
- 插入排序
- 將當前位置的數保存下來,與前面的數一一比較,直到碰到比自身小的數停下來,並插入到該小數的後一個位置。