2015-03-16

バブルソートってわかりやすいだけがとりえなのに

再帰にするとわかりにくいったらないな。

いや配列で扱うならまだいいが関数型言語リストでやってみるとそれはひどいことになる。配列の値をちまちま変えながらやるのが最適な方法なのでそれが遅いわけだが、関数語型言語デフォであるimmutableなオブジェクトでやろうとするとごにょごにょしすぎてわかりやすさがどこかへいってしまうしmutableなオブジェクトと代入を使うとそれはそれで関数型言語的にキモくなる。そもそもソート全般副作用っぽいので相性悪いのだろう。探索みたいな読み込みだけなら問題ないはず。haskellが注目されたときあのクイックソートが有名になったわけだがバブルソートの複雑化が注目されるわけがない。

なぜバブルソートか?

バブルソート教育用であり実践じゃ使わない、で切り捨てる人もいるがあまりにも人間味がなさすぎる。アルゴリズムハローワールド地位でもって扱うべき。しか関数型言語からいい声は聞こえないだろう。

  • そもそもソート全般が副作用っぽいので相性悪いのだろう。 マージソートのことも思い出してやってください。あとヒープソートも結構いけるで。

    • そもそも現代のプログラマがソートのコード書くことねえって。 配列オブジェクトのsort()メソッド呼ぶ際にカスタムの比較関数書くだけで十分に早いソートは出来てしまうんやから。 逆...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん