gpt4 book ai didi

sorting - 在交换过程中无法获得我想要的最终列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:15 25 4
gpt4 key购买 nike

最终,我将尝试在链表方案中重新实现排序算法。我已经编写了一个子过程,它将在整个过程中为我提供帮助。目标是简单地交换 2 个元素,作为参数“pair1 和 pair2”给出,然后返回列表。

(define (cons-til lst until)
(cond
((or (null? lst) (eq? (car lst) until)) '())
(else (cons (car lst) (cons-til (cdr lst) until)))))

(define (swap lst pair1 pair2)
(cons (cons (append (cons-til lst (car pair1))
(car pair2)) (car pair1)) (cdr pair2)))

(define my-list '(1 2 3 4 5 6 7))

(swap my-list (cdr (cdr my-list)) (cdr (cdr (cdr my-list))))

当代码执行时,返回:

(((1 2 . 4) . 3) 5 6 7)

我怎样才能解决这个问题以获得一个简单的方案列表。该元素似乎已正确交换。

最佳答案

两个建议:

  • 您真的要编写 n cdr 调用来索引 nth 元素吗?我强烈建议使用整数索引(如果你需要的话)。

  • 在链表中通过索引引用元素(即“随机访问”)在大多数情况下并不是很有效,尤其是在循环中完成时。我强烈建议使用不需要随机访问的向量或更适合的算法,例如。 G。归并排序。

关于sorting - 在交换过程中无法获得我想要的最终列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54363320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com