Слияние кода завершено, страница обновится автоматически
L1
、L2
中有一个为空,则返回另一个.L1
、L2
的首元素x1
、x2
x1
小于等于x2
,则将x1
作为新列表的首元素,并继续合并L1
的剩余部分和L2
.x1
大于x2
,则将x2
作为新列表的首元素,并继续合并L1
和L2
的剩余部分.(define (merge L1 L2)
(cond ((null? L1) L2)
((null? L2) L1)
(else
(let ((x1 (car L1)) (x2 (car L2)))
(if (<= x1 x2)
(cons x1 (merge (cdr L1) L2))
(cons x2 (merge L1 (cdr L2))))))))
(define (merge-sort L)
(define (transform x)
(if (number? x)
(list x)
x))
(cond ((null? L) '())
((= (length L) 1) (car L))
(else
(let ((l1 (transform (car L)))
(l2 (transform (cadr L))))
(let ((new (list (merge l1 l2))))
(merge-sort (append (cddr L) new)))))))
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )