 Debian 新維護人員手冊軟件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 修改原始碼 13 3.1 設置 quilt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 在不斷進步。 – Debian 期望你製作出高質量的軟件包。 – 你應該適時改變自己來適應變化。 在 Debian 社區中有這幾類常見的角色: • Upstream author (上游作者):程序的原始作者。 • Upstream maintainer (上游維護者):目前在上游維護程序代碼的人。 • Maintainer (軟件包維護者):製作並維護該程序的 Debian 軟件包的人。 • 此軟體包提供了建立和維護 chroot 環境的工具。在它的 chroot 環境中編譯 Debian 軟體包可以檢查編譯 依賴是否合適,並避免 FTBFS (Fails To Build From Source,原始碼編譯失敗) 的 Bug。(參看 pbuilder(8) 和 pdebuild(1)) • perl - Perl 是現今類 Unix 系統中使用最普遍的解釋型腳本語言,它常被稱作 Unix 的瑞士軍刀。(參看0 码力 | 63 页 | 512.12 KB | 1 年前3 Debian 新維護人員手冊軟件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 修改原始碼 13 3.1 設置 quilt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 在不斷進步。 – Debian 期望你製作出高質量的軟件包。 – 你應該適時改變自己來適應變化。 在 Debian 社區中有這幾類常見的角色: • Upstream author (上游作者):程序的原始作者。 • Upstream maintainer (上游維護者):目前在上游維護程序代碼的人。 • Maintainer (軟件包維護者):製作並維護該程序的 Debian 軟件包的人。 • 此軟體包提供了建立和維護 chroot 環境的工具。在它的 chroot 環境中編譯 Debian 軟體包可以檢查編譯 依賴是否合適,並避免 FTBFS (Fails To Build From Source,原始碼編譯失敗) 的 Bug。(參看 pbuilder(8) 和 pdebuild(1)) • perl - Perl 是現今類 Unix 系統中使用最普遍的解釋型腳本語言,它常被稱作 Unix 的瑞士軍刀。(參看0 码力 | 63 页 | 512.12 KB | 1 年前3
 Debian 套件打包教學指南 version 0.29Debian 套件打包教學指南 2 / 90 大綱 1 介紹 2 製作原始碼套件 3 構建並測試套件 4 實際演練 1: 修改 grep 套件 5 進階打包主題 6 維護 Debian 套件 7 結論 8 深入淺出實際演練 9 深入淺出實際演練 Debian 套件打包教學指南 3 / 90 大綱 1 介紹 2 製作原始碼套件 3 構建並測試套件 4 實際演練 1: 修改 grep git-buildpackage, . . . 當需要使用時,可安裝上述套件. Debian 套件打包教學指南 8 / 90 一般打包套件的流程 Web 上游程式碼 Debian 鏡像站 原始程式套件 這階段會完成大 部份手動操作 一個或多個二進制套件 .deb dh_make apt-get source dget debuild (透過lintian建立並測試套 件) 或者 dpkg-buildpackage devscripts fakeroot 2 創建並進入一個工作目錄: mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial 3 把 dash 原始碼套件下載下來 apt-get source dash (務必確保 deb-src 已加入 /etc/apt/sources.list) 4 構建套件 cd dash-* debuild -us -uc0 码力 | 90 页 | 691.02 KB | 1 年前3 Debian 套件打包教學指南 version 0.29Debian 套件打包教學指南 2 / 90 大綱 1 介紹 2 製作原始碼套件 3 構建並測試套件 4 實際演練 1: 修改 grep 套件 5 進階打包主題 6 維護 Debian 套件 7 結論 8 深入淺出實際演練 9 深入淺出實際演練 Debian 套件打包教學指南 3 / 90 大綱 1 介紹 2 製作原始碼套件 3 構建並測試套件 4 實際演練 1: 修改 grep git-buildpackage, . . . 當需要使用時,可安裝上述套件. Debian 套件打包教學指南 8 / 90 一般打包套件的流程 Web 上游程式碼 Debian 鏡像站 原始程式套件 這階段會完成大 部份手動操作 一個或多個二進制套件 .deb dh_make apt-get source dget debuild (透過lintian建立並測試套 件) 或者 dpkg-buildpackage devscripts fakeroot 2 創建並進入一個工作目錄: mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial 3 把 dash 原始碼套件下載下來 apt-get source dash (務必確保 deb-src 已加入 /etc/apt/sources.list) 4 構建套件 cd dash-* debuild -us -uc0 码力 | 90 页 | 691.02 KB | 1 年前3
 Comprehensive Rust(繁体中文)Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 46.8 將 Crate 登錄為 Chromium 原始碼 . . . . . . . . . . . . . . . . . . . . . . . . 241 46.9 保持 Crate 為最新版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 51 微控制器 250 51.1 原始 MMIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 51.2 周邊裝置存取 Crate Rust Fundamentals. 在此基礎上,我們將誠摯邀請您深入探討一或多個專題: • Android:這是半天的課程,會說明如何針對 Android 平台開發作業 (Android 開放原始碼計畫) 使用 Rust,並介紹與 C、C++ 和 Java 的互通性。 • Chromium: a half-day course on using Rust within Chromium based0 码力 | 358 页 | 1.41 MB | 10 月前3 Comprehensive Rust(繁体中文)Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 46.8 將 Crate 登錄為 Chromium 原始碼 . . . . . . . . . . . . . . . . . . . . . . . . 241 46.9 保持 Crate 為最新版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 51 微控制器 250 51.1 原始 MMIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 51.2 周邊裝置存取 Crate Rust Fundamentals. 在此基礎上,我們將誠摯邀請您深入探討一或多個專題: • Android:這是半天的課程,會說明如何針對 Android 平台開發作業 (Android 開放原始碼計畫) 使用 Rust,並介紹與 C、C++ 和 Java 的互通性。 • Chromium: a half-day course on using Rust within Chromium based0 码力 | 358 页 | 1.41 MB | 10 月前3
 Kubernetes平台比較:Red Hat
OpenShift、SUSE Rancher及
Canonical Kubernetes率、加強安全性、導入自動化及加速創新;因此Gartner預測將有75%的全球組 織,在2022年之前於正式作業執行容器化應用程式,而這樣的數據並不會讓人 感到驚訝。1 Kubernetes已經成為管理容器化工作負載和服務的頂尖開放原始碼平台,不過 Kubernetes生態系統既龐大又複雜,不但有許多不同版本的Kubernetes可供選 擇,此外也難以瞭解哪種版本最適合組織的特定需求。 本白皮書的目標是因應這項挑戰,提供撰寫本文時Kubernetes版圖的當下狀態, ana儀表板。同樣 地,Rancher使用者只要在Rancher UI按一下,就能啟動Prometheus及Grafana。 最後,Canonical Kubernetes出貨時隨附一組標準化的開放原始碼記錄彙總及系統 監控儀表板,其中使用Prometheus、Grafana、Elasticsearch及Nagios 等解決方案。 5 13.多雲部署 現代企業很少只仰賴單一雲端平台,一般都會尋求採用多雲策略,依據本身需求0 码力 | 10 页 | 1.26 MB | 1 年前3 Kubernetes平台比較:Red Hat
OpenShift、SUSE Rancher及
Canonical Kubernetes率、加強安全性、導入自動化及加速創新;因此Gartner預測將有75%的全球組 織,在2022年之前於正式作業執行容器化應用程式,而這樣的數據並不會讓人 感到驚訝。1 Kubernetes已經成為管理容器化工作負載和服務的頂尖開放原始碼平台,不過 Kubernetes生態系統既龐大又複雜,不但有許多不同版本的Kubernetes可供選 擇,此外也難以瞭解哪種版本最適合組織的特定需求。 本白皮書的目標是因應這項挑戰,提供撰寫本文時Kubernetes版圖的當下狀態, ana儀表板。同樣 地,Rancher使用者只要在Rancher UI按一下,就能啟動Prometheus及Grafana。 最後,Canonical Kubernetes出貨時隨附一組標準化的開放原始碼記錄彙總及系統 監控儀表板,其中使用Prometheus、Grafana、Elasticsearch及Nagios 等解決方案。 5 13.多雲部署 現代企業很少只仰賴單一雲端平台,一般都會尋求採用多雲策略,依據本身需求0 码力 | 10 页 | 1.26 MB | 1 年前3
 Hello 算法 1.2.0 繁体中文 C# 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 com 81 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 379 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 C# 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 com 81 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 379 页 | 18.79 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Dart 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 排序後,串列元素從小到大排列 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 378 页 | 18.77 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Dart 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 排序後,串列元素從小到大排列 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 378 页 | 18.77 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Go 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 com 82 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 385 页 | 18.80 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Go 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 com 82 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 385 页 | 18.80 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Kotlin 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 排序後,串列元素從小到大排列 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 382 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Kotlin 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 排序後,串列元素從小到大排列 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 382 页 | 18.79 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Java 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 com 81 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 379 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Java 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 com 81 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 379 页 | 18.79 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 JavaScript 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 排序後,串列元素從小到大排列 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 379 页 | 18.78 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 JavaScript 版,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 排序後,串列元素從小到大排列 4.3.2 串列實現 許多程式語言內建了串列,例如 Java、C++、Python 等。它們的實現比較複雜,各個參數的設定也非常考 究,例如初始容量、擴容倍數等。感興趣的讀者可以查閱原始碼進行學習。 為了加深對串列工作原理的理解,我們嘗試實現一個簡易版串列,包括以下三個重點設計。 ‧ 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 改良雜湊表資料結構,使得雜湊表可以在出現雜湊衝突時正常工作。 2. 僅在必要時,即當雜湊衝突比較嚴重時,才執行擴容操作。 雜湊表的結構改良方法主要包括“鏈式位址”和“開放定址”。 6.2.1 鏈式位址 在原始雜湊表中,每個桶僅能儲存一個鍵值對。鏈式位址(separate chaining)將單個元素轉換為鏈結串列, 將鍵值對作為鏈結串列節點,將所有發生衝突的鍵值對都儲存在同一鏈結串列中。圖 6‑5 展示了一個鏈式位0 码力 | 379 页 | 18.78 MB | 10 月前3
共 28 条
- 1
- 2
- 3













