2013-01-17 56 views
3

我想使用自我平衡二叉樹來玩一些算法,但我很難找到Java的TreeSet(或C#的SortedSet)的Ruby等價物。什麼是Java的TreeSet <Integer>(自平衡二叉樹)的Ruby等價物?

我發現網頁代碼,如:

https://github.com/nahi/avl_tree#readme

https://github.com/MishaConway/binary_search_tree

http://blog.mikedll.com/2009/09/balanced-avl-binary-search-tree.html

我寧願依靠的東西是在Ruby的標準庫。 Ruby的標準庫中沒有這個類嗎?除了RubyTree,我似乎無法找到很多,我不相信這是自我平衡。

(我會把谷歌搜索,直到我找到它,或有人在這個論壇上指出我在正確的方向:))

回答

7

您可以設置使用的SortedSet如下圖所示

require 'set' 
s = SortedSet.new([8,2,9,3]) 
=> #<SortedSet: {2, 3, 8, 9}> 

通參數數組作爲參數

+0

因此,如果我想確定在隨機生成的平衡二叉搜索樹中查找密鑰所花費的平均時間量,我可以使用SortedSet?我試圖看看它說SortedSet是作爲一個平衡的二叉搜索樹實現的...... hmmm –

+2

@FoolishChap它是一棵紅黑樹。請參閱https://github.com/ruby/ruby/blob/trunk/lib/set.rb#L540 – halfelf

+0

Word!非常感謝! –