任何人都可以提供什麼時候存儲數據的最佳方式是treap的真實示例?什麼時候使用樹枝
我想了解在哪些情況下treap會比堆和樹結構更好。
如果可能,請提供一些來自實際情況的示例。
我試過在這裏搜索使用treaps的例子,並用谷歌搜索,但沒有找到任何東西。
謝謝。
任何人都可以提供什麼時候存儲數據的最佳方式是treap的真實示例?什麼時候使用樹枝
我想了解在哪些情況下treap會比堆和樹結構更好。
如果可能,請提供一些來自實際情況的示例。
我試過在這裏搜索使用treaps的例子,並用谷歌搜索,但沒有找到任何東西。
謝謝。
我無法爲您提供任何真實世界的例子。但我用treaps解決編程競賽的一些問題:
這些都不是真正真正問題,但它們是有意義的。
Treaps是平衡二叉搜索樹的很棒變體。確實存在許多用於平衡二叉樹的算法,但其中大多數算法都是可怕的,需要處理大量特殊情況。另一方面,對Treap進行編碼非常容易。通過使用隨機性,我們有一個預期爲對數高度的BBT。 一些很好的問題要解決使用treaps是 - http://www.spoj.com/problems/QMAX3VN/(簡易級) http://www.spoj.com/problems/GSS6/(中等水平)
如果哈希值作爲重點,treaps提供內容的唯一代表。
考慮作爲AVL樹或rb-tree實現的項目的順序集。以不同順序插入項目通常會以不同形狀的樹木結束(儘管它們都是平衡的)。對於一個給定的內容,無論歷史情況如何,它都將具有相同的形狀。
我見過兩個原因爲什麼唯一表示可能是有用的:
如果散列值被用作優先級,那麼優先級可能不是隨機的或者是均勻分佈的。這可能會破壞treap –
@jason的理論 - 應該使用隨機哈希函數。參見[Aragon和Seidel:隨機搜索樹](https://faculty.washington.edu/aragon/pubs/rst96.pdf)第7.1節。 – smossen