バブルソート

問題を解くのにアルゴリズムの知識が必要だと感じたのでアルゴリズムを学習してみました。

アルゴリズムとは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。

アルゴリズムの中には、ソートというものがあり、データをある順序に並び替える時に使われます。たとえば、ソートを使うことで、数字の小さい順や大きい順に順番を並び替えることができるのです。ソートにはいくつか種類があり、代表的なものにバブルソートクイックソート、選択ソート、交換ソートなどがあります。

問題は、単語を好きなだけ入力した後、sortメソッドを使わないで単語をアルファベット順に並び替えろというものです。

今回は初心者にわかりやすいバブルソートを使ってみました。

word = 'foo'
array = []

while not word.empty?
  word = gets.chomp
  array << word
end

i = 0
while i < array.length
  j = 1
  while j < array.length - i
    if array[i] > array[i+j]
      saving = array[i]
      array[i]  = array[i+j]
      array[i+j] = saving
    end
    j += 1
  end
  i += 1
end 

puts array

感想
これを機会にすこしづつ使えるアルゴリズムを増やしていきたいです。