再帰にするとわかりにくいったらないな。
いや配列で扱うならまだいいが関数型言語でリストでやってみるとそれはひどいことになる。配列の値をちまちま変えながらやるのが最適な方法なのでそれが遅いわけだが、関数語型言語のデフォであるimmutableなオブジェクトでやろうとするとごにょごにょしすぎてわかりやすさがどこかへいってしまうしmutableなオブジェクトと代入を使うとそれはそれで関数型言語的にキモくなる。そもそもソート全般が副作用っぽいので相性悪いのだろう。探索みたいな読み込みだけなら問題ないはず。haskellが注目されたときあのクイックソートが有名になったわけだがバブルソートの複雑化が注目されるわけがない。
なぜバブルソートか?
バブルソートは教育用であり実践じゃ使わない、で切り捨てる人もいるがあまりにも人間味がなさすぎる。アルゴリズムのハローワールドの地位でもって扱うべき。しかし関数型言語畑からいい声は聞こえないだろう。
そもそもソート全般が副作用っぽいので相性悪いのだろう。 マージソートのことも思い出してやってください。あとヒープソートも結構いけるで。
そもそも現代のプログラマがソートのコード書くことねえって。 配列オブジェクトのsort()メソッド呼ぶ際にカスタムの比較関数書くだけで十分に早いソートは出来てしまうんやから。 逆...