8天精讀掌握:演算法4(Algorithms) 第2天 2018/11/15
阿新 • • 發佈:2018-11-26
今日有效學時:11.5小時 ,不過因為有突發事情從11點到凌晨3點都沒有學習,3點才睡覺,其餘時間效率非常高
今日綜合評分:90分
學習成果:今天學了80頁,其實可以學100頁的 主要是因為被一些事情打擾了
普林斯頓-演算法4 第一章1.2 資料抽象
- 測試
- 為什麼不適用字元陣列代替字串?
- 程式碼實戰
- 實現普通累加器和視覺化累加器
普林斯頓-演算法4 第一章1.3 揹包 佇列和棧
- 理解泛xin的概念
- 理解:型別引數相關概念和性質
- T-理解:型別引數的概念,並且型別引數必須被例項化為引用型別。
- 記憶:JAVA中封裝型別和原始資料型別的對應關係
- T-理解:自動裝箱和自動拆箱的概念
- Iterable collections.
- T-理解:一級語言特性-迭代訪問性
- 理解foreach語句,以及foreach語句對於可迭代集合的基本語法。
- BAG
- T-理解:The order of iteration is unspecified and should be immaterial to the client.
- 掌握揹包的概念和性質
- 程式碼測試:
- 利用揹包資料結構,計算標準輸入中的平均值和標準偏差。
- FIFO queues 【firstin-first-out (FIFO) 】
- 程式碼測試:利用FIFO queues實現 readInts方法,即在不知道陣列大小的情況下讀出檔案的所有數字到一個數組中。
- 掌握queues的概念和性質
- Pushdown stacks 【LIFO】
- 掌握棧的概念和性質
- 測試:請回答這是什麼演算法【胡氏雙棧演算法】
- 程式碼測試:Dijkstra演算法(演算法功能:給定任意字串,計算他的結果)
- Dijkstra’s two-stack arithmetic expression-evaluation algorithm
- Implementing collections
- 程式碼實現:Fixed-capacity stack
- 程式碼實現:Fixed-capacity stack+Generics
- 瞭解JAVA中泛型的基本套路
- 重要細節:JAVA中建立泛型陣列的語法
- 理解物件遊離的概念
- 回憶本章棧的實現教學流程
- 版本1:定容棧-缺點沒有 Generics
- 版本2:改動一點點程式碼將定容棧實現generics
- 版本3:實現非定容棧,利用動態挑戰陣列大小,使得棧的利用率>25%;
- 版本4:改動原始碼以避免物件遊離
- T-理解我們的棧實現 物件遊離發生的原因
- 版本5:改動原始碼使得我們的棧可以迭代
- T-理解棧的迭代器的next方法實現是 --i(佇列就是++i)
- T-理解foreach語句的本質[就是while的某種格式的簡寫]
- 因為歷史原因,必須有如下程式碼:
- import java.util.Iterator
- 可迭代集合需要滿足如下兩個核心
the ingredients that we need to implement in any iterable collection:
■ The collection must implement an iterator() method that returns an
Iterator object.
■ The Iterator class must include two methods: hasNext() (which returns a
boolean value) and next() (which returns a generic item from the collection)
注意:測試部分指的是我在BFLB測驗中必須要測驗的點。每天我羅列出來我學習的知識大部分我都會在BFLB測驗中對其進行考核;