用形式化的容器来跑归并排序
来源:互联网 发布:各个协议的端口号列表 编辑:程序博客网 时间:2024/06/07 19:14
(mymachine (
(defmacro demoinside (expr)
(print expr)
)
(defmacro mymachineinside (exprs)
`(if ,(eq exprs nil)
nil
(progn
(demoinside ,(car exprs))
(mymachineinside ,(cdr exprs) )
)
)
)
(mymachineinside (
(defmacro demo (expr)
(print expr)
)
(defmacro mymachine (exprs)
`(if ,(eq exprs nil)
nil
(progn
(demo ,(car exprs))
(mymachine ,(cdr exprs) )
)
)
)
(defun mycons ( x y)
(lambda (p ) (funcall p x y) )
)
(defun mycar (n)
(funcall n (lambda( x y) x) )
)
(defun mycdr (n)
(funcall n (lambda( x y) y) )
)
(defun mycadr (n)
(mycar (mycdr n) )
)
(defun printlst (n)
(if (eq n nil)
nil
(progn
(print (mycar n) )
(printlst (mycdr n) )
)
)
)
(defun emerge (x y)
(if (eq x nil)
y
(if (eq y nil )
x
(if (> (mycar x ) (mycar y) )
(mycons (mycar y) (emerge x (mycdr y) ) )
(mycons (mycar x ) ( emerge (mycdr x) y ) )
)
)
)
)
(defun ptr ( x num )
(if (eq num 0)
x
(ptr (mycdr x ) (- num 1 ) )
)
)
(defun myget (x count )
(if (eq count 0)
nil
(mycons (mycar x) (myget (mycdr x ) (- count 1) ) )
)
)
(defun divi (x num )
(if (eq num 2)
(if (> (mycar x ) (mycadr x) )
(mycons (mycadr x ) (mycons (mycar x) nil) )
x
)
(emerge (divi (myget (ptr x 0 ) (/ num 2) ) (/ num 2) )
(divi (myget (ptr x (/ num 2) ) (/ num 2 ) ) (/ num 2) ) )
)
)
(setq y (mycons 23 (mycons 345 nil) ) )
(printlst (divi y 2) )
(setq y (mycons 345 (mycons 23 nil) ) )
(printlst (divi y 2))
(setq y (mycons 345 (mycons 23 (mycons 10 (mycons 89 (mycons 34 (mycons 2 (mycons 77
(mycons 864 nil)))))))))
(printlst (divi y 8) )
(setq z (mycons 23 (mycons 34 (mycons 11 (mycons 98 (mycons 456 (mycons 875 (mycons 76
(mycons 21 nil)))))))))
(printlst (divi z 8) )
))
))
- 用形式化的容器来跑归并排序
- list容器的特殊sort()算法:非递归--归并排序
- 148. Sort List(链表的归并排序,用快慢指针来partition)
- 用归并排序实现单链表的排序
- 归并排序以及归并排序的优化
- 形式化方法的问题
- 形式化方法的优点
- nature (自然数的形式化)
- 万恶的形式化
- 闲来无聊来说说归并排序
- 一个很好用的归并排序
- 形式化
- 归并排序的源代码
- 归并排序的实现
- Ruby的归并排序
- 归并排序的实现
- 数组的归并排序
- 归并排序的实现
- java开发环境的搭建-----mysql的下载与安装(四)
- HTTP协议头详解
- MVC 相关
- 解决CInternetSession运行异常的问题
- Android Service 通知Activity更新界面的方法研究
- 用形式化的容器来跑归并排序
- 进程与线程
- PDP
- 软件企业开发过程管理(听visual studio讲座有感)
- mplayer编译安装
- How to Make an HTTP Connection Using TCP/IP with RSocket
- 对LEON开发板进行配置所遇到的问题
- 沪3月二手房价格初现松动 可议价3至5个百分点
- find命令的使用