跳過列表,來自第一原則。您搭乘的火車在每個車站都停靠,而您的車站就在線路的遠處。簡單來說:對數字進行排序,並快速尋找、新增或刪除其中任何一個。排序鍊錶很容易插入,但一次搜尋一個節點,排序數組搜尋速度很快,但每次插入時都會改變。跳躍列表將稀疏的快速通道堆疊在排序的鍊錶上:搜尋從左上角開始,在下一個鍵不太大時向右移動,並在超出時丟棄一條通道,並且硬幣翻轉為每個新鍵提供了其高度,因此無需重新平衡。我們追蹤了五步對九步搜索五十二人的搜索,六步對十步搜索的缺席搜索,以及通過拋硬幣將一座塔拼接成兩條車道的三十五人插入。我們明白為什麼它需要大約兩個 log n 步驟,用不幸的硬幣、重複的鍵、錯過通道和無界高度的刪除來打破它,並說明誠實的成本:預期的 log n 搜索、插入和刪除,每個鍵大約兩個指針,對於帶有種子的一百萬個鍵,運行大約二十個通道,平均大約三步,看到平均七十步,而普通列表的平均速度是五十步。平衡樹、排序數組和哈希表、Redis 排序集、RocksDB 和 LevelDB 記憶體表、佇列和速率限制器、有序掃描、隨機性、快取行為和練習頁面的使用。資料庫結構的第三級是梯子。專為人工智慧工程師編碼輪而設計。在網站上自己練習(免費,在瀏覽器中運行):https://vibeengines.com/algorithm/skip-list 該頁面有一個模擬器、一個帶有隱藏測試的編碼任務、提示和完整的解釋器。章節 0:00 問題:排序,快速查找、添加、刪除 0:50 暴力破解:鍊錶和排序數組 1:19 想法:快速通道,然後放下,硬幣翻轉 1:59 跟踪搜索並通過 10 個鍵進行插入 3:02 為什麼要使用 log n 步而不進行旋轉 3:34 打破它:不幸的硬幣 4:4:48 具有 4:2184: 284:48 具有 4:484: 24:484: 24:48 的高度時間和空間的詳細信息,有一百萬個鍵 5:53 權衡:平衡樹、排序數組、哈希表 6:35 它在人工智能係統中的位置 7:06 邊緣情況:掃描、隨機性、緩存、空列表 7:45 在 Vibe 引擎上練習 資料庫在網站上提供的結構的第三級:B 樹列表、LSM 片段#skiplist #datastructs #algorithms #redis #aiengineer #systemdesigninterview #codinginterview
免責聲明:info@kdj.com
所提供的資訊並非交易建議。 kDJ.com對任何基於本文提供的資訊進行的投資不承擔任何責任。加密貨幣波動性較大,建議您充分研究後謹慎投資!
如果您認為本網站使用的內容侵犯了您的版權,請立即聯絡我們(info@kdj.com),我們將及時刪除。