Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > Sort algorithm in Haskell
【标  题】:Sort algorithm in Haskell
【关键字】:Sort,algorithm,in,Haskell
【来  源】:http://www.cppblog.com/chengmeng/archive/2006/08/18/11424.html

Sort algorithm in Haskell

Your Ad Here 现在每天抽一个小时看看Haskell作为调节。有个哥们将考试推到明年六月了。据说今天考的都是超高频题(样本数量为3,太少……)。我那不坚定的决心在动摇。用福克纳的话:“他们在苦熬”。这叫装逼。

用Haskell写了两个排序算法,快速排序和合并排序。都很短,没几行程序,虽然效率肯定是不敢恭维的,但能用来满足我们那自欺欺人的美感,言简意赅不是很高的境界么?不管是写文章还是写程序都差不多。但同时要清楚,要可读性。说了这么多还是看看成果吧:

module Sort where

-- Quick Sort Algorithm
quicksort [] = []
quicksort (x
:xs) = quicksort [y | y <- xs,y <= x]
++ [x] ++ quicksort [y | y <- xs,y > x]

-- Merge two ordered sequences
merge' [] [] = []
merge' lst []
= lst
merge' [] lst
= lst
merge' (x1
:xs1) (x2:xs2) =
if
x1 < x2
then x1:(merge' xs1 (x2:xs2))
else x2:(merge' (x1:xs1) xs2)

-- Merge Sort Algorithm
mergesort [] = []
mergesort (x
:[]) = [x]
mergesort lst
=
let
parts = splitAt (div (length lst) 2) lst
in merge' (mergesort (fst parts))
(mergesort (snd parts))


其实只利用了递归和Haskell强大的列表处理功能。这也不是Haskell的专利,我相信Python或Ruby或Lisp也完全能做到。
出名的Ajax网站:【上一篇】
在Powerdesigner中,根据已有字段的Name值替换Code相同的Name的值:【下一篇】
【相关文章】
  • CFG、INI配置文件读写C程序
  • [原创]windows下NDS开发环境简单搭建
  • TinyOS简介
  • 删除windows记事本病毒
  • [转]巧用WinRAR捆绑木马技巧与防范
  • Windows Server 2003 防木马、权限设置、IIS服务器安全配置整理
  • 我的Mac OSX与Windows XP双启动解决方案
  • 《linux与unix shell编程》之Linux文件查找命令find,xargs详述
  • AIX,HPUX,Tru64,Solaris,Linux 命令比较(2006-8-18更新)
  • VM安装minix2.0
  • 【随机文章】
  • 联络管理系统 (ACCESS+ADO)
  • 孕育中的TD-LAS标准
  • 一个中年职场老油子对应届生谈招聘
  • fb图标
  • rchacl与chacl的区别。
  • Linux发行版本的体会
  • FPGA介绍
  • ORACLE 中移动数据库文件
  • 什么是Eaccelerator?
  • JNDI
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.