너무도 기초적인 거라 설명이고 자시고 그냥 둘 다 묶어서 한 포스트에 올려본다.
바로 소스 나옴.
소스 >>
# 선택 정렬 / 버블 정렬 구현
# 2009-03-17, Jung-taek Lim(Heart)
def swap_array_elem(array, idx1, idx2)
temp = array[idx1]
array[idx1] = array[idx2]
array[idx2] = temp
end
def selection_sort(array)
array_len = array.length
(0..array_len - 2).each do |i|
min_idx = i
(i+1..array_len - 1).each do |j|
min_idx = j if array[min_idx] > array[j]
end
swap_array_elem(array, i, min_idx) unless min_idx == i
end
end
def bubble_sort(array)
array_len = array.length
(0..array_len - 2).each do |i|
(i+1..array_len - 1).each do |j|
swap_array_elem(array, i, j) if array[i] > array[j]
end
end
end
def make_example_array
array = [69, 10, 30, 2, 16, 8, 31, 22]
end
array = make_example_array
selection_sort array
puts array.map {|x| x.to_s + " "}.to_s
array = make_example_array
bubble_sort array
puts array.map {|x| x.to_s + " "}.to_s
|
결과 >>
2 8 10 16 22 30 31 69
2 8 10 16 22 30 31 69
'Dev.Programming > DS/Algorithm' 카테고리의 다른 글
| 삽입 정렬 - in Ruby (0) | 2009/03/18 |
|---|---|
| 퀵 정렬 - in Ruby (0) | 2009/03/17 |
| 선택 정렬 & 버블 정렬 in Ruby (2) | 2009/03/17 |
| 그래프 탐색(깊이 우선 탐색, 너비 우선 탐색) - in Ruby (0) | 2009/03/16 |
| 인접 리스트로 구현한 Graph - in Ruby (2) | 2009/03/16 |
| 인접 행렬로 구현한 Graph - in Ruby (0) | 2009/03/16 |


