程式設計素人眼裡的程式設計珠璣

2021-10-20 11:55:41 字數 1565 閱讀 9502

@程式設計珠璣-吐槽向

作為乙個cs專業的素人, 在每乙個立志學好計算機的深夜搜尋如何做一名優秀的程式設計師時,都會被推薦這本書,終於我下單了,並且在乙個陽光並不充足的週末,我看完了這本書。

第一章

我個人認為第一章是我在這本書裡最大的收穫。第一章大概講述了分析問題的重要性。在實際應用情境中,當我們遇見即使乙個很常見的問題,我們仍然需要分析在我們的情境中,我們的資料的特點,然後根據資料的特點擊擇乙個最適合的演算法,而不是乙個理論上的最好的演算法。

第二章

二分法, 向量旋轉方法以及變位詞問題。

第三章

1, 有序的組織你的資料,當你的變數過於混亂的時候,嘗試尋找乙個資料結構將相關的變數的組織起來。

2, 避免編寫邏輯冗餘的**。當你編寫太多差不多意思的**的時候,檢查**邏輯。

第四章&&第五章

乙個程式設計師需要寫出bug free的**,且要養成寫unit test的習慣。(就這,寫了兩章)

第六章

不是很明白想講什麼。可能是在講如果乙個程式執行的很慢,找出痛點,從硬體和**的角度優化。

第七章

做人要有常識,做事之前要先估摸一下,要是實在拿不準,安全係數往大了設。

第八章

輸入向量的最大連續子向量和問題。

第九章

1,頻繁進行io操作的資料放到快取裡。

2, 保證自己**裡的每一步計算和比較都是必要的(**調優應在確信沒有更好的設計時進行)

第十章

空間優化問題(鍊錶表示稀疏矩陣)。

第十一章

介紹了插入排序演算法和快排。插入排序演算法在輸入資料相對有序時表現較好,而快排在資料相對隨機時表現較好。

本章末尾引入了乙個插入排序和快排混合的演算法。首先利用快速排序將資料處理成一塊一塊的有序資料塊, 其中i塊資料塊中所有的元素都比i+1塊的元素小, 但是每一塊內的資料是無序的。最後利用插入排序將每一小塊的資料排序,得到最終的有序資料。

第十二章

沒有理解到作者的點。

第十三章

介紹了陣列,鍊錶, 以及bst的插入。(並沒有從這一章裡面了解到什麼特別的東西)。

第十四章

介紹了一下堆這個資料結構(就這)。

第十五章

本章的收穫是了解了乙個找最長重複子字串的演算法。

假設有乙個字串abaaba,首先將字串預處理得到(abaaba, baaba, aaba, aba, ba, a)將得到的字串們排序(a,aaba,aba,abaaba,ba, baaba), 依次查詢第i個和第i+1個字串的公共部分(必須包含第乙個元素, aaba和aba公共部分是a不是aba, aba和abaaba的公共元素才是aba)。

後記

程式設計珠璣 續(程式設計珠璣 修訂版)

經久不衰的電腦科學名著 集深邃思想 實戰技術與趣味軼事於一冊 領略電腦科學之美 程式設計珠璣 續 作譯者介紹 譯者 錢麗豔 劉田叢書名 圖靈程式設計叢書 出版社 人民郵電出版社 isbn 9787115251510出版日期 2011 年5月 程式設計珠璣 續 是電腦科學方面的經典名著 程式設計珠璣 ...

程式設計珠璣 心得

第一部分 基礎 第1章 開篇 1.1 一次友好的對話 1.2 準確的問題描述 1.3 程式設計 1.4 實現概要 1.5 原理 1.6 習題 1.7 深入閱讀 第2章 啊哈!演算法 2.1 三個問題 2.2 無處不在的二分搜尋 2.3 基本操作的威力 2.4 排序 2.5 原理 2.6 習題 2.7...

程式設計珠璣題目集錦

輸入 乙個最多含有 n個不重複的正整數 也就是說可能含有少於 n個不重複正整數 的檔案,其中每個數都小於等於n 且n 10 7 輸出 得到按從小到大公升序排列的包含所有輸入的整數的列表。程式設計珠璣 中提出的問題,有三種解法 1 磁碟合併排序 先將所有資料分成多個小檔案,多個小檔案採用內部排序後,再...