Hatena::ブログ(Diary)

うっかりプログラミング日誌 RSSフィード

2010-05-09

マージソート

| 00:20 |  マージソートを含むブックマーク

基本に立ち戻って、マージソートをやってみた。

Ruby, C, Scala, Gaucheの4種類。

最初にRubyで書いて、他に移植という流れ。


ScalaとGaucheはほぼ同じ。普通に再帰で書いたけど、Scalaは末尾再帰に最適化されてるそうな。


Cだけは配列をガンガン作ろうとするとmallocが大変なことになるので、1つを使いまわす形に。

tempはmallocしないで静的に定義してもいいかも。

Cはまだまだ慣れない。


Ruby

C

Scala

Gauche

trotrtrotr 2010/06/25 08:06 はじめまして。gaucheのmergeの部分ですが、lengthはO(N)なのでnull?を使って空か調べた方が良いと思います。

gom68gom68 2010/06/27 16:00 > trotr さん
コメントありがとうございます!
早速null?を使って書き直してみますー。