用Lisp语言实现快速排序(快排)算法
发布时间
阅读量:
阅读量
具体实现的代码示例如下:
(defun main-qsort (arr)
(let ((start 0) (end (- (length arr) 1)))
(qsort start end arr))
(print arr)
)
(defun qsort (start end arr) ;note the variable arr is a list
(when (< end start)
(return-from qsort NIL))
(when (= end start)
(if (> (elt arr start) (elt arr end))
(rotatef (elt arr start) (elt arr end)))
(return-from qsort T))
(when (> end start)
(let ((mid (partition start end arr)))
;(format t "mid=~d (~d, ~d)" mid start end) (print arr)
(when (or (< mid start) (> mid end))
(retur
全部评论 (0)
还没有任何评论哟~
