「珠璣之櫝」系列簡介與索引

2022-02-20 22:41:13 字數 1204 閱讀 8562

系列博文主要目的:

收集《程式設計珠璣》和《程式設計珠璣(續)》(以下簡稱《續》)上的演算法和思想,幷包括了一些自己的思考和對相關問題的引申,以備複習和查用。

內容提要:

出自於《程式設計珠璣》和《續》原書的演算法題和習題有標示。

本系列博文已經寫完,預計1~3天發布一篇,目前(2013.7.8)已發完。

位向量/點陣圖的定義和應用

估算的應用與little定律

隨機數函式取樣與概率

****正確性:迴圈不變式、斷言、debug

二分思想與分治法、排序思想

字串和陣列演算法:左移、雜湊表、最長重複子序列的字尾陣列解法、最大連續子串行

原書有但未收錄的內容介紹:

1.基礎的資料結構

二分查詢樹

2.較少使用的資料結構

箱3.基本的排序

插入排序、希爾排序、快速排序

4.堆和優先順序佇列

個人更傾向於使用《演算法導論》上介紹的版本

5.馬爾科夫鏈文字生成器

利用馬爾科夫鏈的性質,經過文字訓練,能夠產生一段自然的隨機文字的程式。

與《程式設計實踐》相比,由於使用了更精巧的資料結構,占用空間較少,但也更難理解。

6.以二分查詢(第9章)和質數查詢(《續》第1章)為例的**調優

7.位排序演算法

類似strcmp(),可查閱習題11.5

8.拓撲排序

第2章,偽**:

initialize a queue to empty

for each node i

if pre count of i is 0

insert i to queue

while queue is not empty

delete t from the front of queue

print t

for each successor s of t

decrement pred count of s

if the count is 0

insert s to queue

《算導》上的拓撲排序比這個略難理解一些,因為它為了說明,引入了結束時間的概念。

9.關聯陣列

介紹的是awk語言的特性,如今的c++裡的map容器還有像python裡的字典有類似的作用。

10.以牛頓迭代法為代表的數值分析(《續》第14章)

「珠璣之櫝」系列簡介與索引

系列博文主要目的 收集 程式設計珠璣 和 程式設計珠璣 續 以下簡稱 續 上的演算法和思想,幷包括了一些自己的思考和對相關問題的引申,以備複習和查用。內容提要 出自於 程式設計珠璣 和 續 原書的演算法題和習題有標示。本系列博文已經寫完,預計1 3天發布一篇。位向量 點陣圖的定義和應用 估算的應用與...

珠璣之櫝 二分思想與分治法 排序思想

目錄 排序思想 如果你對概念很敏感,會馬上意識到這兩者的細微不同 二分搜尋每次都要捨棄一半,從留下的一半中尋找目標 而分治法把乙個大問題分成兩個或多個小問題,遞迴地求這些小問題的解,最後再把它們小心謹慎的合併起來,並且要仔細考慮合併時產生的新的情況。這當然沒有錯,但你也馬上會從這裡意識到兩者的巨大聯...

珠璣之櫝 二分思想與分治法 排序思想

目錄 排序思想 如果你對概念很敏感,會馬上意識到這兩者的細微不同 二分搜尋每次都要捨棄一半,從留下的一半中尋找目標 而分治法把乙個大問題分成兩個或多個小問題,遞迴地求這些小問題的解,最後再把它們小心謹慎的合併起來,並且要仔細考慮合併時產生的新的情況。這當然沒有錯,但你也馬上會從這裡意識到兩者的巨大聯...