@ 트리 정렬(위키피디아)

 

트리 정렬은 이진 탐색 트리(BST) 를 이용한다.

이진 탐색 트리를 중위 순회하면 키 값이 작은 순서대로 순회가 되므로 이를 그대로 저장하면 정렬이 완료된다.

 

Pseudocode 생략

 

소스 >>

 

# 트리 정렬 Implementation
# Jungtaek Lim(Heart), 2009-03-18

require 'binary_search_tree'

def make_example_array
  array = [69, 10, 30, 2, 16, 8, 31, 22]
end

def print_array(array)
  puts array.map {|x| x.to_s + " "}.to_s
end

def tree_sort(array)
  bst = BinarySearchTree.new

  array.each { |elem| bst.insert_node(elem, elem) }

  sorted_array = bst.inorder_traversal

  array.each_index { |i| array[i] = sorted_array[i].value }
end

array = make_example_array
tree_sort array
print_array array

 

 

결과 >>

2 8 10 16 22 30 31 69

크리에이티브 커먼즈 라이선스
Creative Commons License

'Dev.Programming > DS/Algorithm' 카테고리의 다른 글

해시 검색 - in Ruby  (0) 2009/03/18
이진 검색 - in Ruby  (0) 2009/03/18
트리 정렬 - in Ruby  (0) 2009/03/18
힙 정렬 - in Ruby  (0) 2009/03/18
기수 정렬 - in Ruby  (0) 2009/03/18
병합 정렬 - in Ruby  (0) 2009/03/18
Posted by Heart