lisp 冒泡排序怎么写
lisp 冒泡排序怎么写一般用什么排序
用sort函数吧 satan421 发表于 2021-3-28 09:37
用sort函数吧
666
vl-sort几行代码完美解决问题 (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
什么是冒泡?
一种排序算法,就像水中的气泡,大的浮上去 (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) baitang36 发表于 2021-8-31 10:06
一种排序算法,就像水中的气泡,大的浮上去
哦,我还以为是弹出的窗口呢。
页:
[1]