程式設計珠璣筆記1

2021-07-06 05:10:03 字數 872 閱讀 7669

乙個檔案裡有1千萬(10000000)個7位的整數(小於1千萬),給大約1m記憶體讓排序

向量旋轉:abcdefgh(長度n為8),向左旋轉i=3次

某檔案包含40億個隨機次序32位整數,其中有乙個整數未出現,找出來。限制:記憶體幾百位元組,若干順序檔案。

乙個詞典有230000個單詞,file和life是變位詞,找出所有變位詞的詞集

咖啡罐問題:乙個成有一些黑色豆子和一些白色豆子的咖啡罐以及一大堆「額外」的黑色豆子,從罐子中隨即選取兩顆豆子,如果顏色相同,就將他們扔掉並卻放入乙個黑色的豆子;如果顏色不通,就將白色豆子放回罐子中,而將黑色的豆子扔掉。重複上述過程,直到罐子中只剩一顆豆子為止。證明該過程會終止,最後留下的豆子顏色跟初始狀態時白豆和黑豆的數量有何關係?

由於bw與bb相同,可以認為只有bb, ww兩種情況。每次同色bb,ww,都會加入黑色,所以在白豆數量減少至1個或0個(0還是1取決於白豆奇數偶數)之前,黑豆不可能取完。所以我們簡化為:直接先成對取白豆

當白豆w=2n(偶數)時,先取完所有白豆,剩下的就是黑豆b=b+n,其實此刻黑豆數量沒關係,全是黑豆,白豆沒有加入途徑,最後一輪必定黑豆

當白豆w=2n+1(奇數)時,先成對取白豆至剩餘1個白豆,黑豆b=b+n,在成對取出黑豆(記得回想上面的論證,可以認為只有bb,ww兩類),最終必定剩餘1黑1白(可以反證:剩餘2黑1白,2黑成對取出,又加入1黑,得到1黑1白)。1黑1白,異色,白色回罐,黑色丟棄。最終是白色。

結論:白豆偶數,最後乙個是黑豆;白豆奇數,最後乙個是白

最大子向量:乙個向量,每個元素有正有負,求最大子向量的和

《程式設計珠璣》閱讀筆記1

第一章 磁碟排序 對於乙個提出的問題,不要未經思考就直接給出答案。要先深入研究問題,搞清楚這個問題的特點,根據這個特點,可能有更好的解決方案。比如 文中 最初的需求只是 我如何對磁碟檔案排序 我們首先想到了經典的歸併排序。但進一步了解到排序的內容是10000000個記錄,每條記錄都是乙個7位整數,且...

《程式設計珠璣》看書筆記

臨睡前翻看了下 程式設計珠璣 續 這本書,看到第一章就被吸引了,效能監視工具這節從計算素數入手。題目是 列印所有小於1000的素數 簡單直白的方法就是,針對每個小於1000的數字n,從2開始到n 1,如果能被任意乙個數整除,那它就不是素數。如下 int prime int n return 1 in...

讀《程式設計珠璣》筆記

程式設計珠璣 是一本很好的,經典的程式設計書。這兩天開始讀,有種 相見恨晚 的感覺。書中通過講述作者自己的親身體會來說明程式設計的藝術。很有感染力。第一章講述了乙個 號碼排序的故事。強調化蘩為簡的重要性。很多問題,咋一看挺難的,如果仔細分析轉化,可能會發現其實很簡單。第二章二分搜尋和排序在實際問題處...