Hello 算法 1.2.0 繁体中文 C# 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 第0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Dart 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 第 6 章 雜湊表 www.hello‑algo.com 116 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 索引)。換句話說,輸入一個0 码力 | 378 页 | 18.77 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Go 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 第0 码力 | 385 页 | 18.80 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Kotlin 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 第0 码力 | 382 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Java 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 第0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 JavaScript 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 索引)。換句話說,輸入一個0 码力 | 379 页 | 18.78 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 TypeScript 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 索引)。換句話說,輸入一個0 码力 | 384 页 | 18.80 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Swift 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 第0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Ruby 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 當前陣列的所有元素依次移動至新陣列。在本示例中,我們規定每次將陣列擴容至之前的 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 索引)。換句話說,輸入一個0 码力 | 372 页 | 18.75 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Python 版料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。 ‧ 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 ?(? log ?) ;而如果給定的資料是 固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 ?(??) ,其中 ? 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體 驗變好等)。 初始容量:選取一個合理的陣列初始容量。在本示例中,我們選擇 10 作為初始容量。 ‧ 數量記錄:宣告一個變數 size ,用於記錄串列當前元素數量,並隨著元素插入和刪除實時更新。根據 此變數,我們可以定位串列尾部,以及判斷是否需要擴容。 第 4 章 陣列與鏈結串列 www.hello‑algo.com 79 ‧ 擴容機制:若插入元素時串列容量已滿,則需要進行擴容。先根據擴容倍數建立一個更大的陣列,再將 我們先考慮最簡單的情況,僅用一個陣列來實現雜湊表。在雜湊表中,我們將陣列中的每個空位稱為桶 (bucket),每個桶可儲存一個鍵值對。因此,查詢操作就是找到 key 對應的桶,並在桶中獲取 value 。 那麼,如何基於 key 定位對應的桶呢?這是透過雜湊函式(hash function)實現的。雜湊函式的作用是將一個 較大的輸入空間對映到一個較小的輸出空間。在雜湊表中,輸入空間是所有 key ,輸出空間是所有桶(陣列 索引)。換句話說,輸入一個0 码力 | 364 页 | 18.74 MB | 10 月前3
共 16 条
- 1
- 2













