算法引论:一种创造性方法(书)
目錄
第1章 引論
第2章 數(shù)學(xué)歸納法
2.1 引言
2.2 三個簡單的例子
2.3 平面內(nèi)區(qū)域的計(jì)數(shù)
2.4 簡單的著色問題
2.5 復(fù)雜一些的加法題
2.6 一個簡單的不等式
2.7 歐拉公式
2.8 圖論中的一個問題
2.9 格雷碼
2.10 在圖上尋找無重邊的路
2.11 數(shù)學(xué)平均數(shù)和幾何平均數(shù)定理
2.12 循環(huán)不變量:將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
2.13 常見的錯誤
2.14 小結(jié)
第3章 算法分析
3.1 引言
3.2 符號D
3.3 時間與空間復(fù)雜度
3.4 求和
3.5 遞推關(guān)系
3.5.1 巧妙地猜測
3.5.2 分治關(guān)系
3.5.3 涉及全部歷史的遞推關(guān)系
3.6 一些有用的證明論據(jù)
3.7 小結(jié)
第4章 數(shù)據(jù)結(jié)構(gòu)簡介
4.1 引言
4.2 基本數(shù)據(jù)結(jié)構(gòu)
4.2.1 元素
4.2.2 數(shù)組
4.2.3 記錄
4.2.4 鏈表
4.3 樹
4.3.1 樹的表示
4.3.2 堆
4.3.3 二叉搜索樹
4.3.4 AVL樹
4.4 散列
4.5 合并—查找問題
4.6 圖
4.7 小結(jié)
第5章 基于歸納的算法設(shè)計(jì)
5.1 引言
5.2 多項(xiàng)式求值
5.3 最大導(dǎo)出子圖
5.4 尋找一對一映射
5.5 社會名流問題
5.6 分治算法:輪廓問題
5.7 在二叉樹中計(jì)算平衡因子
5.8 尋找最大連續(xù)子序列
5.9 增強(qiáng)歸納假設(shè)
5.10 動態(tài)規(guī)劃:背包問題
5.11 常見的錯誤
5.12 小結(jié)
第6章 序列和集合的算法
6.1 引言
6.2 二叉搜索的幾種形式
6.2.1 純二叉搜索
6.2.2 循環(huán)序列的二叉搜索
6.2.3 二叉搜索特殊下標(biāo)
6.2.4 二叉搜索長度未知的序列
6.2.5 重疊子序列問題
6.2.6 解方程
6.3 內(nèi)插搜索
6.4 排序
6.4.1 桶排序和基數(shù)排序
6.4.2 插入排序和選擇排序
6.4.3 歸并排序
6.4.4 快速排序
6.4.5 堆排序
6.4.6 排序問題的下界
6.5 順序統(tǒng)計(jì)
6.5.1 最大數(shù)和最小數(shù)
6.5.2 查找第足小的數(shù)
6.6 數(shù)據(jù)壓縮
6.7 串匹配
6.8 序列比較
6.9 概率算法
6.9.1 隨機(jī)數(shù)
6.9.2 著色問題
6.9.3 將拉斯維加斯算法變換成確定性算法
6.10 查找眾數(shù)
6.11 三個展現(xiàn)有趣證明方法的問題
6.11.1 最長遞增序列
6.11.2 查找集合中兩個最大的元素
6.11.3 計(jì)算多重集合的模
6.12 小結(jié)
第7章 圖算法
7.1 引言
7.2 歐拉圖
7.3 圖的遍歷
7.3.1 深度優(yōu)先搜索
7.3.2 廣度優(yōu)先搜索
7.4 拓?fù)渑判?br /> 7.5 單源最短路徑
7.6 最小代價生成樹
7.7 全部最短路徑
7.8 傳遞閉包
7.9 圖的分解
7.9.1 雙連通分支
7.9.2 強(qiáng)連通分支
7.9.3 利用圖分解的例子
7.10 配
7.10.1 非常稠密圖中的完美匹配
7.10.2 偶圖匹配
7.11 網(wǎng)絡(luò)流量
7.12 哈密爾頓旅行
7.12.1 反向歸納
7.12.2 在非常稠密圖中找哈密爾頓回路
7.13 小結(jié)
第8章 幾何算法
8.1 引言
8.2 判定點(diǎn)是否在多邊形內(nèi)部
8.3 構(gòu)造簡單多邊形
8.4 凸包
8.4.1 直接方法
8.4.2 禮品包裹算法
8.4.3 Graham掃描算法
8.5 最近點(diǎn)對
8.6 水平線段和豎直線段的交點(diǎn)
8.7 小結(jié)
第9章 代數(shù)和數(shù)值算法
9.1 引言
9.2 求冪運(yùn)算
9.3 歐幾里得算法
9.4 多項(xiàng)式乘法
9.5 矩陣乘法
9.5.1 Winograd算法
9.5.2 Strassen算法
9.5.3 布爾矩陣
9.6 快速傅里葉變換
9.7 小結(jié)
第10章 歸約
10.1 引言
10.2 歸約的例子
10.2.1 簡單字符串匹配問題
10.2.2 特殊代表集
10.2.3 關(guān)于序列比較的歸約
10.2.4 在無向圖中尋找三角形
10.3 有關(guān)線性規(guī)劃的歸約
10.3.1 概述與定義
10.3.2 歸約到線性規(guī)劃的例子
10.4 下界的歸約
10.4.1 尋找簡單多邊形算法復(fù)雜度的下界
10.4.2 關(guān)于矩陣的簡單歸約
10.5 常見的錯誤
10.6 小結(jié)
第11章 NP完全問題
11.1 引言
11.2 多項(xiàng)式時間歸約
11.3 非確定性和Cook定理
11.4 NP完全性的證明例子
11.4.1 頂點(diǎn)覆蓋問題
11.4.2 支配集問題
11.4.3 3SAT問題
11.4.4 團(tuán)問題
11.4.5 3著色問題
11.4.6 一般經(jīng)驗(yàn)
11.4.7 更多的NP完全問題
11.5 處理NP完全問題的技術(shù)
11.5.1 回溯法和分枝限界法
11.5.2 確保性能的近似算法
11.6 小結(jié)
第12章 并行算法
12.1 引言
12.2 并行計(jì)算模型
12.3 共享存儲器算法
12.3.1 并行加
12.3.2 尋找最大數(shù)的算法
12.3.3 并行前綴問題
12.3.4 在鏈表中查尋秩
12.3.5 歐拉遍歷技術(shù)
12.4 連網(wǎng)絡(luò)上的算法
12.4.1 陣列上的排序
12.4.2 排序網(wǎng)絡(luò)
12.4.3 在樹中查找第k個最小元素
12.4.4 網(wǎng)孔上的矩陣乘法
12.4.5 超立方體中的路由
12.5 脈動計(jì)算
12.5.1 矩陣與向量相乘
12.5.2 卷積問題
12.5.3 序列的比較
12.6 小結(jié)
部分習(xí)題答案
參考文獻(xiàn)
譯者序
本書作者烏迪·曼博(Udi Manber)博士是美國著名的計(jì)算機(jī)科學(xué)家, 國際公認(rèn)的算法大師, 在線信息搜索引擎的先驅(qū). 烏迪·曼博曾是美國亞利桑那大學(xué)計(jì)算機(jī)專業(yè)的教授, 離開學(xué)校后在雅虎公司擔(dān)任執(zhí)行官, 目前是亞馬遜(Amazon. com)的副總裁和首席算法師(CAO), 也是亞馬遜旗下搜索網(wǎng)站A9. com的首席執(zhí)行官, 他提出的UDI測試已經(jīng)成為衡量搜索引擎質(zhì)量的評估標(biāo)準(zhǔn).
本書的特色有二, 一是強(qiáng)調(diào)算法設(shè)計(jì)的創(chuàng)造性過程, 而不是拘泥于某個具體算法的詳細(xì)討論, 正如常言道“予之以魚, 不如授之以漁”. 在教學(xué)過程中常常發(fā)現(xiàn)有許多同學(xué)(包括譯者自己)不是去掌握算法背后的思想, 而是鉆牛角尖, 針對某個算法反復(fù)地思考, 或者只是掌握了幾個具體的算法就沾沾自喜. 事實(shí)上學(xué)習(xí)算法不外乎兩個目的, 一是了解各種算法, 在遇到問題時能靈活地應(yīng)用所掌握的方法技巧, 二個研究算法設(shè)計(jì)技術(shù), 當(dāng)沒有現(xiàn)成可用的算法時, 能夠創(chuàng)造出問題的求解方法. 前者非常實(shí)際, 但后者更加重要, 它涉及創(chuàng)新, 是推動學(xué)科發(fā)展的源泉. 本書中的習(xí)題就很有特色, 大致分為兩類, 一類是操練型的, 意在鞏固對具體算法的了解, 鍛煉學(xué)生應(yīng)用書中介紹的算法以及各種變體的設(shè)計(jì)能力, 另一類是創(chuàng)造型的, 旨在讓學(xué)生掌握設(shè)計(jì)算法的技術(shù)而非算法本身, 由此鍛煉學(xué)生的算法設(shè)計(jì)能力而不是算法應(yīng)用能力. 這種體系結(jié)構(gòu)是一種嘗試, 雖然目前市面上有許多大部頭的算法著作, 包括一些算法大師的名著, 但本書強(qiáng)調(diào)的是創(chuàng)造性, 具有濃郁特色, 因此時至今日仍有巨大的價值.
本書的特色之二是將算法設(shè)計(jì)類比于歸納證明. 事實(shí)上, 歸納證明. 遞歸算法. 遞推關(guān)系, 它們之間存在著千絲萬縷的聯(lián)系. 對事物, 人們往往是從簡單到復(fù)雜, 從具體到抽象地進(jìn)行思考, 猜測存在的性質(zhì)并試圖證明, 最后得到一般性的規(guī)律再加以應(yīng)用. 問題求解也是如此, 我們先從簡單的情況出發(fā), 考慮簡單問題的解決方案, 然后再推廣到一般的情況, 在此過程中需要驗(yàn)證的是這種推廣的有效性, 這無疑就是一種歸納證明. 作者將算法設(shè)計(jì)類比于歸納證明并貫穿全書, 將各種歸納方法演繹得淋漓盡致, 使通常的算法設(shè)計(jì)有章可循, 更使設(shè)計(jì)算法成為一種享受.
譯者黃林鵬教授與本書的翻譯有著不解之緣. 2003年初, 譯者的研究生導(dǎo)師左孝凌教授擬修改他的離散數(shù)學(xué)教材, 準(zhǔn)備添置論述歸納法的章節(jié), 由此譯者為他收集了許多關(guān)于歸納法的材料, 并粗讀了其中一部分, 也了解到了一些皮毛. 不料2004年暑假左老師因操勞過度, 竟不辭西去. 譯者希望能以這本與歸納法緊密相關(guān)的翻譯教材的出版向左老師及其未盡事業(yè)致敬. 此外就是關(guān)于并行計(jì)算中的脈動陣列算法, 15年前譯者在讀博士的時候, 恰好其博士生導(dǎo)師孫永強(qiáng)教授在做關(guān)于脈動陣列的研究, 譯者得以參與, 并對此稍有了解. 2000年譯者在美國哈佛大學(xué)進(jìn)修, 遇到脈動陣列體系結(jié)構(gòu)的創(chuàng)始人之一, 并有幸旁聽了他的課程. 而本書最后就是關(guān)于脈動陣列算法的, 讀來譯來, 會有些如偶遇故知和聆聽智者教誨的感覺. 雖然脈動陣列是本書成書時的研究熱點(diǎn), 現(xiàn)在時過境遷, 已經(jīng)是集群計(jì)算. 分布對象計(jì)算. 網(wǎng)格計(jì)算的時代, 但書中涉及的并行算法設(shè)計(jì)的思想依然璀璨, 富有啟迪. 事實(shí)上, 正是因?yàn)閺?qiáng)調(diào)的是算法設(shè)計(jì)的創(chuàng)造陛過程而非算法本身, 才使得本書可以永保活力.
本書的翻譯工作由上海交通大學(xué)的黃林鵬教授負(fù)責(zé), 并與一些老師和博士生共同完成, 其中的第2章. 第4章. 第6章由陸首博初譯, 第3章. 第5章. 第7章由謝謹(jǐn)奎初譯, 參與本書翻譯工作的還有歐佳凡. 黃青. 楊歡. 林海源. 毛宏燕. 黃曉琴. 李東. 劉飛. 林琳. 王佳锃. 耿向陽等同志, 陸朝俊和任慶生副教授對本書一些章節(jié)的翻譯提供了大量幫助. 在此, 對所有為本書出版提供了幫助的人們表示誠摯的感謝!稿件由黃林鵬修改. 整理和定稿, 并對最終出現(xiàn)的問題負(fù)責(zé), 請將批評意見寄至lphuang@sjtu. edu. cn, 不勝感激.
作譯者
Udi Manber美國著名的計(jì)算機(jī)科學(xué)家, 國際公認(rèn)的算法大師, 在線信息搜索引擎的先驅(qū). 1982年于華盛頓大學(xué)獲得計(jì)算機(jī)科學(xué)博士學(xué)位, 曾是美國亞利桑那大學(xué)計(jì)算機(jī)專業(yè)教授, 離開學(xué)校后在雅虎公司擔(dān)任執(zhí)行官, 目前是亞馬遜(Amazon.com)的副總裁和首席算法大師(CAO), 也是亞馬遜施下搜索網(wǎng)站A9.com的首席執(zhí)行官, 他提出的UDI測試已經(jīng)成為衡量搜索引擎質(zhì)量的評估標(biāo)準(zhǔn).
前言
編寫本書的動機(jī)來源于我在教學(xué)實(shí)踐中常常無法為給定算法給出清晰解析的困惑. 與許多教師一樣, 我發(fā)現(xiàn)對一些學(xué)生來說, 要他們親自動手解決一些簡單問題有困難, 而讓他們理解給定問題的解決方案同樣有困難. 我相信, 事物的兩個方面——創(chuàng)造和解釋——是相關(guān)而不可分離的. 為了完全了解一個問題, 考察最后的答案遠(yuǎn)遠(yuǎn)不夠, 我們必須了解問題的求解過程.
本書強(qiáng)調(diào)了算法設(shè)計(jì)的創(chuàng)造性方面, 其主要目的是要告訴讀者如何去設(shè)計(jì)一個新的算法. 本書描述算法的順序不是“問題x. 算法A. 算法A'. 程序P. 程序P'”, 而是像(但并不總是)“問題X. 直接明了的問題求解算法. 缺點(diǎn). 改進(jìn)這些缺點(diǎn)的困難. (可能包含一些錯誤的)好的算法. 進(jìn)一步的改進(jìn). 分析以及其他方法和算法的關(guān)系”. 本書的目標(biāo)不是給出一個容易轉(zhuǎn)換為程序代碼的算法, 而是希望讀者理解算法的原理. 算法因此被解釋為創(chuàng)造過程而不是最終產(chǎn)品. 我們講授算法的目標(biāo)不僅是說明如何求解特定的問題, 還包括傳授如何求解未來將產(chǎn)生或遇到的新問題的技術(shù). 可以說, 講授算法設(shè)計(jì)的思維過程與講授問題求解細(xì)節(jié)是同樣重要的.
為了進(jìn)一步幫助讀者構(gòu)建算法創(chuàng)造的思維過程, 本書在算法設(shè)計(jì)過程中使用的是一種“老兵新傳”式的方法學(xué). 該方法學(xué)除了涵蓋許多已知的算法設(shè)計(jì)技術(shù)外, 還是一個優(yōu)雅的. 能深人解釋算法設(shè)計(jì)的直覺的框架. 然而, 該方法學(xué)并不能遍及算法設(shè)計(jì)所有可能的方法, 我們也不打算專用該方法學(xué)于算法設(shè)計(jì)過程. 該方法學(xué)的核心在于使用歸納法進(jìn)行數(shù)學(xué)定理證明的智能過程與組合算法設(shè)計(jì)過程之間的相似性. 盡管這兩個過程的目的不同. 取得結(jié)果的類型有異, 但它們的相似程度卻比表面上看起來更多. 此相似性也已被許多人注意. 本書的新穎性在于對該相似性所進(jìn)行的深度發(fā)掘, 并將說明該相似性除了涵蓋許多已知的算法設(shè)計(jì)技術(shù)外, 還可以在相當(dāng)程度上幫助算法的創(chuàng)建. 對于該方法學(xué), 本書第l章先做了簡單的介紹, 然后在第5章中進(jìn)行形式化討論.
考慮下面的類比. 你來到一座陌生的城市, 租了一輛車, 現(xiàn)在想知道旅館的方向. 這時如果別人喋喋不休地告訴你城市的歷史. 布局和交通狀況, 你肯定會覺得非常厭煩. 你所需要的其實(shí)是諸如“向前開. 過兩個街區(qū). 右轉(zhuǎn). 再直著向前開三英里”這樣的信息. 然而, 如果計(jì)劃在這座城市里生活較長的時間, 那么你的看法就會有所改變. 你可能希望在另一個方向上行駛一段時間(假定能找到一個人告訴你方向), 慢慢地你將對城市有更多的了解. 雖然本書也包含了許多問題的求解和解析, 但它不是一本告訴你所有具體目標(biāo)其方位的書籍, 主要強(qiáng)調(diào)的是一般性的原理和方法. 本書的學(xué)習(xí)具有挑戰(zhàn)性, 它需要讀者的深入思考, 而我相信額外的努力是值得的.
在許多不同領(lǐng)域, 如數(shù)學(xué). 統(tǒng)計(jì)學(xué). 細(xì)胞生物學(xué)和工程學(xué)科, 高效非數(shù)值算法的設(shè)計(jì)已變得非常重要, 本書可作為算法和非數(shù)值計(jì)算的導(dǎo)論性書籍. 許多專業(yè)人士, 甚至那些未曾和計(jì)算機(jī)有過緊密接觸的科學(xué)家, 會認(rèn)為程序設(shè)計(jì)是一種低級且無需智能的活動. 這種看法將導(dǎo)致簡單. 低效. 價值不高的問題解決方案, 而忽視優(yōu)雅. 高效算法的存在. 本書的目的就是要向讀者說明-算法設(shè)計(jì)是一門既重要又雅致的學(xué)問.
本書是自包含的, 大部分內(nèi)容很直觀, 技術(shù)性細(xì)節(jié)盡量保持到最少或者與討論的主題內(nèi)容分離, 特別是我們將算法實(shí)現(xiàn)細(xì)節(jié)和算法思想盡可能分離, 書中許多算法的設(shè)計(jì)都強(qiáng)調(diào)了這一原則. 本書并不是以哪些內(nèi)容必須掌握和牢記這樣的方式來設(shè)計(jì)的, 而是通過思想. 例子. 反例. 修改. 改進(jìn)等一系列過程加以闡述. 在大多數(shù)算法描述內(nèi)容的后面給出了算法的偽代碼, 每章都包含習(xí)題和相關(guān)的文獻(xiàn)目錄. 大部分章節(jié)后面的習(xí)題可分為兩類:操練型和創(chuàng)造型. 操練型習(xí)題的目的在于檢查讀者對于書中特定例子和算法的理解, 創(chuàng)造型習(xí)題的目的在于檢查讀者應(yīng)用相應(yīng)章節(jié)所介紹的特定算法和技術(shù)于新問題求解的能力. 本書最后給出了一些精選習(xí)題(習(xí)題編號加上了下劃線)的答案.
本書組織如下. 第1章到第4章的內(nèi)容是介紹性的. 第2章涉及數(shù)學(xué)歸納法, 就我看來, 數(shù)學(xué)歸納法對于算法設(shè)計(jì)是非常重要的, 熟悉歸納法對于算法設(shè)計(jì)來說有莫大的幫助. 遺憾的是計(jì)算機(jī)科學(xué)系的學(xué)生對于歸納證明不是十分了解, 因此對一些學(xué)生來說, 第2章的內(nèi)容可能比較困難, 建議他們在第一次閱讀本書的時候跳過那些有難度的例子, 待適當(dāng)時候再回過頭來研究. 第3章涉及算法分析, 描述了算法分析的過程, 并給出對本書所討論的算法進(jìn)行簡單分析所需要的工具. 第4章介紹了數(shù)據(jù)結(jié)構(gòu), 那些對數(shù)據(jù)結(jié)構(gòu)熟悉且具備一定數(shù)學(xué)基礎(chǔ)的同學(xué)可以直接跳到第5章(但閱讀一下也是有益的)學(xué)習(xí). 第5章提出了與歸納證明進(jìn)行類比的算法設(shè)計(jì)思想, 并給出一些簡單的例子, 描述了算法設(shè)計(jì)過程. 如果你沒有太多時間, 只打算閱讀本書的一章, 則請直接閱讀第5章.
一般來說, 有關(guān)算法的書籍有兩種不同的組織結(jié)構(gòu), 一種是按照領(lǐng)域進(jìn)行分類的, 如分成圖算法. 幾何算法等, 另一種是按照算法設(shè)計(jì)技術(shù)進(jìn)行分類的. 雖然本書強(qiáng)調(diào)的是算法設(shè)計(jì)技術(shù), 但我選擇了前者. 本書第6章到第9章分別給出了下面4個領(lǐng)域的算法:序列和集合的算法(如排序. 序列比較. 匹配等). 圖算法(如生或樹. 最短路徑. 匹配等)幾何算法(如凸包和交集問題等). 代數(shù)和數(shù)值算法(如矩陣乘法. 快速傅里葉變換等). 這種組織結(jié)構(gòu)不但清晰且易于理解.
第10章涉及歸約或約簡. 盡管歸約的例子也出現(xiàn)在本書前面其他章節(jié)之中, 但該主題不但獨(dú)特而且重要, 因此有必要作為一章的主題. 第10章的內(nèi)容也是第11章的序幕, 后者涉及NP完全問題. 復(fù)雜度理論已經(jīng)成為算法的基本組成部分, 任何算法設(shè)計(jì)者都應(yīng)該了解NP完全問題以及證明相關(guān)性質(zhì)的技術(shù). 第12章介紹了并行算法, 本章包含不同并行計(jì)算模型上的幾個有意義的算法.
本書內(nèi)容或許不能在一個學(xué)期之內(nèi)講授完畢. 因此對于教師來說就有多種不同的選擇. 開設(shè)的第一門算法設(shè)計(jì)課程可在某種深度上涉及第3章. 第5章. 第6章. 第7章和第8章的部分內(nèi)容, 這些章節(jié)的高級部分以及第9章. 第10章. 第11章和12章的內(nèi)容是可選的, 它們也可作為高級算法課程的基礎(chǔ).
致謝
首先要感謝我的妻子Rachel對于本書的幫助, 對本書所基于的方法學(xué)她給出了指導(dǎo)性的建議, 對于本書的內(nèi)容她也給出了許多意見和忠告, 可以說沒有她就沒有本書. 特別感謝Jan
Van Leuwen對本書大部分章節(jié)所給出的全面的評論. 這些詳細(xì)的意見. 建議和修正方案為本書增色不少. 感謝Eric Bach. Darrah
Chavey. Kirk Pruhs和Sun Wu, 他們在閱讀了本書的部分手稿后給出了建設(shè)性的意見, 感謝Guy T. Almes(賴斯大學(xué)). Agnes
H. Chan(美國東北大學(xué)). Dan Gusfield(加州大學(xué)Davis分校). David Harel(以色列魏茲曼學(xué)院). Daniel
Hirschberg(加州大學(xué)Irvine分校). Jefferey H. Kingston(愛荷華大學(xué)). Victor
Klee(華盛頓大學(xué)). Charles Martel(加州大學(xué)Davis分校). Michael J. Quinn(新罕布什爾大學(xué))和Diane
M. Spresser(詹姆士·麥迪遜大學(xué)).
感謝Addison-Wesley出版公司的編輯沒有施加給我通常作者所經(jīng)歷的有關(guān)書籍出版的恐怖經(jīng)歷, 他們樂于助人, 并且充滿耐心. 特別感謝主管Bette
Aaronson, 本書的編輯Jim
DeWolf和LynDupre, 他們在寫作過程中引導(dǎo)我, 盡管知道有更好的方法, 但他們?nèi)匀辉试S我按照自己的方式行事. 在這里, 我要感謝美國自然科學(xué)基金總統(tǒng)青年研究獎的資助以及AT&T. 數(shù)字設(shè)備公司. 惠普公司和Tektronix公司的資助.
然而, 必須強(qiáng)調(diào)的是, 最后的手稿是由排版人員(即作者自己)準(zhǔn)備的, 他決定了這里所列舉的許多人員對本書的評論和建議的取舍, 并且將對最后的結(jié)果負(fù)責(zé).
烏迪·曼博
于美國亞利桑那州圖森市
總結(jié)
以上是生活随笔為你收集整理的算法引论:一种创造性方法(书)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HashOperations
- 下一篇: 从 class 文件 看 synchro