Advertisement

用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)

还没有任何评论哟~