該書的第三個大部分講述的是產品。前面的兩個部分,為第三部分打下基礎,前兩部分講述如何程式設計,以及怎樣程式設計可以是程式效率更高,效果更好,而這一部分則是將前兩部分所講述的內容應用到程式設計中去,通過實際應用講述章節**的技術所聚焦的焦點。
在第三部分中,11章講述了幾個一般用途的排序演算法,12章講述了乙個來自實際應用的特定問題,並展示了如何以各種不同的方法解決這個問題,13章講述了第12章中所提到的乙個方法,就是將問題看成是集合所表示中的乙個問題。14介紹堆資料結構,並展示了它如何為排序和優先佇列獲得高數的演算法,15章解決了在非常長的文字字串中查詢單詞或片語時所涉及的幾個問題。
在11章排序中,著重講了集中不同的快排,並把幾種快排的效能列出來。供我們參考。
12章通過乙個小的問題,通過乙個小的程式進行解決。而作為乙個合格的程式設計師,僅有**是不夠的,我們更多的是需要思考正如書中所說,「有的人寧願花一天來編碼,也不樂意花乙個小時思考,乙個小時編碼。」
13章的問題是:在不儲存其他相關資料的情況下,如何儲存一組整數。問題雖小,卻引發了資料結構實現中的關鍵
14章講了資料結構中的堆。通過堆來解決資料結構中的兩個重要問題。排序,通過堆排序來排序n個元素的陣列所需的時間肯定不會超過0(nlogn),並且它只需要使用幾個字的額外空間。優先佇列。堆通過在集合中插入新元素或從集合中提取最小的元素來維護元素集合。
每個操作所需的時間為o(logn)。
個人感受:
在過去的學習中,自己也寫過一些成型的作品,但每次給同學,家人們試用的時候, 最多的反饋就是,不好用,不是說宕機,就是說閃退,就以寒假製作的記賬本一樣,給媽媽用,媽媽一直說不好用,老卡,有時候閃退,或者有時候資料存不上。而出現這些問題的根本,就是我在程式設計的時候,並不考慮程式是否足夠簡單,是否用最短的**實現最多的功能。
正如我所說的那樣,這樣做,只會浪費你更多的時間,讓你的程式不穩定,出現更多的bug。
如今已經看完一本書,書中最大的主題就是效率,不管是人寫**的效率,還是程式完成任務的效率,效率尤為重要,在今後的學習中,要花更多的時間去思考,而不是為了程式設計而程式設計。
程式設計珠璣(第二版)閱讀筆記03
第4章 編寫正確的程式 的開發是自上而下進行的 從一般思想開始,將其完善為獨立的 行 正確性分析則是自下而上進行的 從每個獨立的 行開始,檢查它們是如何協同運作並解決問題的 初始化 保持 終止 過去開發 時總是亂七八糟,在以後程式設計中和除錯過程中,需要同時修正錯誤 和錯誤的斷言 總是保持對 的正確...
程式設計珠璣閱讀筆記01
在此案例分析中我們可以發現,這些事實所包含的第 乙個教訓是 仔細分析小問題 有時可以帶來巨大的實際好處。在本例中,花幾分鐘的時間來仔細分析,導致了 長 度 程式設計時間和執行時間減少了乙個數量級。chunk yeager將軍 第 乙個 飛行速度超過 音速的人 使用 簡單 較少的零部件 易於維護 非常...
《程式設計珠璣》閱讀筆記02
該書第二部分講述的是,效率,正如書中所說,簡單而功能強大的程式可以讓使用者高興,也不會讓程式構建者煩惱,而這就是程式設計師的終極目標,正如上一章所提到的,程式的簡練精悍才是真正重要的,而本章,作者開始講述程式效率的重要性。第6章講述了各種方法,以及他們之間如何作用,第7章講述了在早期的設計過程中所使...