スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Haskell]選択ソート、クイックソート

ソートの練習の続き、
クイックソートはそこらへんのを書き写しだだけですけども。
実装見るとHaskellだと分かりやすいと思う。
選択ソートはHaskellだと分かりにくいです、もっと分かりやすい実装があるかも知れませんが、
私の能力ではこのへんが限界です。

-- 選択ソート
selectSort :: [Int] ->[Int]
selectSort [] = []
selectSort ls = minimum ls : (selectSort $ fill (minimum ls) ls)
where
fill:: Int -> [Int] -> [Int]
fill mini (x:ys) = if mini == x then ys
else x:fill mini ys

-- クイックソート
qsort [] = []
qsort(p:xs) = qsort lt ++ [p] ++ qsort gteq
where
lt = [x | x <- xs, x

gteq = [x | x <- xs, x>=p]

ソートを実装してみた感想


再帰を伴う処理だと分かりやすいが、再帰を伴わず置換代入を利用したソートだと
分かりにくい。
モナドを使えばそんなのも分かりやすく書けると思うが、そうすると関数型、遅延評価の利点を
なくすような実装になると思う。

次は探索系のアルゴリズムかな。
ソートをモナドを使って実装してもいいんだけども。
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

かみさまみならい

Author:かみさまみならい
FC2ブログへようこそ!

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。