明27662 发表于 2021-3-27 14:24:31

lisp 冒泡排序怎么写

lisp 冒泡排序怎么写
一般用什么排序

satan421 发表于 2021-3-28 09:37:02

用sort函数吧

竹天 发表于 2021-8-27 17:48:19

satan421 发表于 2021-3-28 09:37
用sort函数吧

666
vl-sort几行代码完美解决问题

kkq0305 发表于 2021-8-28 02:11:53

(defun bubsor (lst)
(while (not (apply '<= lst))
    (setq n 0)
    (setq vbd (vlax-make-safearray
                vlax-vbDouble
                (cons 0 (1- (length lst)))
              )
    )
    (vlax-safearray-fill vbd lst)
    (while (< n (1- (length lst)))
      (if (> (setq a (vlax-safearray-get-element vbd n))
             (setq b (vlax-safearray-get-element vbd (1+ n)))
          )
        (progn
          (vlax-safearray-put-element vbd n b)
          (vlax-safearray-put-element vbd (1+ n) a)
        )
      )
      (setq n (1+ n))
    )
    (setq lst (vlax-safearray->list vbd))
)
lst
)

mokson 发表于 2021-8-28 10:49:54

什么是冒泡?

baitang36 发表于 2021-8-31 10:06:55

mokson 发表于 2021-8-28 10:49
什么是冒泡?

一种排序算法,就像水中的气泡,大的浮上去

kkq0305 发表于 2021-8-31 11:26:26

(defun bubsor (lst nlst)
(if (cdr lst)
    (if        (>= (car lst) (cadr lst))
      (bubsor (cdr lst) (cons (car lst) nlst))
      (bubsor (cons (car lst) (cddr lst)) (cons (cadr lst) nlst))
    )
    (if        (apply '<= (cons (car lst) nlst))
      (cons (car lst) nlst)
      (bubsor (reverse (cons (car lst) nlst)) '())
    )
)
)
冒泡尾递归
(bubsor '(9 6 8 7 2 6 3 4)'())-》(2 3 4 6 6 7 8 9)

mokson 发表于 2021-9-2 09:23:29

baitang36 发表于 2021-8-31 10:06
一种排序算法,就像水中的气泡,大的浮上去

哦,我还以为是弹出的窗口呢。
页: [1]
查看完整版本: lisp 冒泡排序怎么写