程式設計珠璣第二章閱讀筆記

2022-01-24 08:00:47 字數 538 閱讀 9877

第二章程式設計珠璣講到了演算法的重要性。說到了研究演算法對在工作的程式設計師是很有用的。不僅可以減少開發時間,還可以加快程式的執行速度。講到了二分查詢法的重要性

整體這一樣就是講的演算法的重要性,他能給程式設計師帶來多大的方便,演算法的使用和學習是程式設計師必走的路既能減少程式設計的執行時間,還可以加快執行的速度。

若用二分搜尋法,有以下限制:滿足以下假設:1)陣列中沒有重複元素2)陣列中必有缺失元素

書中給出的問題也正是具有這樣的特殊性,因此可以使用二分法進行缺失元素的查詢。

變位詞的查詢可借助於[標識,單詞]對,將變位詞進行標識,根據標識劃分變位詞。

借助於c++的工具vector、以及map,可以方便地實現。需要掌握的就是資料結構的選擇,儲存單詞採用 vector ,

因為每個單詞是string型別 ;儲存[標識,單詞],採用map < string ,vector >,因為乙個標識sign對應多個string型別的單詞;標識通過對單詞的排序得到,此處採用c++的排序函式sort,sort( sign.begin(),sign.end() );

總的來說就是演算法的重要性。

程式設計珠璣第二章

a題給定乙個最多包含40億個隨機排列的32位整數的順序檔案,找出乙個不在檔案中一32位整數。1 在檔案中至少存在這樣乙個數?2 如果有足夠的記憶體,如何處理?3 如果記憶體不足,僅可以用檔案來進行處理,如何處理?答案 1 32位整數,包括 2146473648 2146473647,約42億個整數,...

程式設計珠璣第二章總結

分析 如果記憶體足夠的話,可以採取第一章的點陣圖排序法,以o n 的效率就可以解決。如果記憶體不足的話,但是有幾個外部檔案可以儲存資料,那麼就可以採用二分查詢的思想來解決問題 這裡的思路比較巧妙,它不是通常意義上的二分查詢,但是思維模式很相似.我們可以通過掃瞄輸入檔案,將第一位是0的寫入乙個檔案,將...

程式設計珠璣第二章ABC

問題 找出乙個不在檔案中的32位整數。注意 題目中沒有說,這40億個數是否是含有重複的資料 條件限制 1 如果有足夠的記憶體,如何處理?2 如果記憶體僅有上百位元組 記憶體不足 且 可以用若干外部臨時檔案,如何處理?舉例 比如abcdef 左移三位,則變成defabc 條件限制 空間限制 可用記憶體...