2013-01-17 2 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의 표준 라이브러리에 어떤 클래스가 없습니까? 나는 RubyTree 이외에 많은 것을 찾지 못했는데, 나는 자기 균형이 맞지 않는다고 믿는다.

(나는 그것을 발견, 또는이 포럼에 누군가가 올바른 방향 :) 나를 포인트 때까지 인터넷 검색을 계속합니다)

답변

7

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

패스를 아래와 같이 설정에서 SortedSet에 사용할 수 있습니다

인수 배열을 매개 변수로 사용

+0

따라서 무작위로 생성 된 균형 이진 검색 트리에서 키를 조회하는 데 걸리는 평균 시간을 결정하려면 SortedSet을 사용할 수 있습니까? SortedSet이 밸런싱 된 바이너리 검색 트리로 구현되었는지 ... hmmm –

+2

@FoolishChap 레드 - 블랙 트리입니다. https://github.com/ruby/ruby/blob/trunk/lib/set.rb#L540 – halfelf

+0

Word를 참조하십시오. 많이 고마워! –