0

私のコードで何が悪いのですか?どうすればそれを変更できますか?

(define pivot (lambda (l)
  (cond ((null? l) 'done)
    ((null? (cdr l)) 'done)
        ((<= (car l) (cadr l)) (pivot (cdr l)))
        (#t (car l)))))

(define (quicksort l)
 (let ((piv (pivot l)))
   (if (equal? piv 'done) l
     (let ((parts (partition piv l () ())))
       (append (quicksort (car parts)) 
               (quicksort (cadr parts)))))))
4

1 に答える 1

3

一部の Scheme インタープリターはpartitionプロシージャーを定義しますが、異なるパラメーターのセットを受け取るため、独自のバージョンを定義したと想定しています。quicksort質問に示されている実装は機能する可能性がありますが、partition手順はほぼ確実に間違っています。コードがないとわかりにくいです...

于 2012-12-20T14:03:09.600 に答える