Dot-Net

搜尋中的重要資料結構

  • October 10, 2012

我有興趣自學不同的資料結構,我目前對此知之甚少。我的計劃是實施一些關鍵結構,以便我了解它們是如何工作的。我正在尋找有關重要資料結構的建議。

我主要對與搜尋應用程序(例如 Google / Lucene)相關的資料結構以及延遲計算和預計算之間的一般權衡感興趣。我還對分佈式資料結構感興趣——可以在成百上千台伺服器上擴展的資料結構——以及機率資料結構——有助於找到近似答案但不需要總是正確的資料結構。

維基百科有一個資料結構列表。我目前正在考慮:

  • 雜湊表
  • B+-樹
  • R-樹
  • KD樹
  • 基數樹
  • 布隆過濾器

有更好的選擇嗎?

最後,用像 F# 這樣的語言實現這些結構是否有任何(主要)問題?

很有野心。我投票支持你的問題只是因為它的範圍。

麻省理工學院有一個線上算法和資料結構課程配套書是經典之作。我不確定它是否解決了分佈式和機率特性,但它們會給你一個很好的基礎知識。

我會將紅黑樹、雜湊表、patricia trie 和跳過列表添加到您的議程中。

祝你好運。

如果你打算用函式式語言來處理這類事情,你應該看看Chris Okasaki 的Purely Functional Data Structures。基本教訓是:您熟悉的命令式程式資料結構可能不是函式式程式的最佳選擇。我希望有很多類似的材料可供Google搜尋。

引用自:https://stackoverflow.com/questions/1980584