Pages: [1]   Go Down
Print
Author Topic: Quick Sort in Scheme (II)  (Read 441 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
ossacolsale
Matricola
*
Offline Offline

Posts: 23


« on: 31-03-2012, 19:20:10 »

Ecco la mia implementazione (come pivot uso il primo elemento della lista e la funzione "merge" è la stessa che abbiamo definito per il MergeSort):

(define (quicksort ls cond?)
  (if (or (null? ls) (null? (cdr ls)))
      ls
      (merge (quicksort (partiziona <= (car ls) (cdr ls)) cond?)
              (cons (car ls) (quicksort (partiziona > (car ls) (cdr ls)) cond?)) cond?)))

(define (partiziona cond? pivot ls)
  (cond ((null? ls) ls)
      ((cond? (car ls) pivot)
             (cons (car ls) (partiziona cond? pivot (cdr ls))))
             (else (partiziona cond? pivot (cdr ls)))))

Se ne avete scritto qualche altra versione la confronto con piacere.
Fatto ciò mi disapplico da Scheme...

Saluti.
gm
« Last Edit: 31-03-2012, 20:12:21 by ossacolsale » Logged
Pages: [1]   Go Up
Print
Jump to: