Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,14 @@
|
|||
(lib 'list) ;; list-partition
|
||||
|
||||
(define compare 0) ;; counter
|
||||
|
||||
(define (quicksort L compare-predicate: proc aux: (part null))
|
||||
(if (<= (length L) 1) L
|
||||
(begin
|
||||
;; counting the number of comparisons
|
||||
(set! compare (+ compare (length (rest L))))
|
||||
;; pivot = first element of list
|
||||
(set! part (list-partition (rest L) proc (first L)))
|
||||
(append (quicksort (first part) proc )
|
||||
(list (first L))
|
||||
(quicksort (second part) proc)))))
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
(shuffle (iota 15))
|
||||
→ (10 0 14 11 13 9 2 5 4 8 1 7 12 3 6)
|
||||
(quicksort (shuffle (iota 15)) <)
|
||||
→ (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
|
||||
|
||||
;; random list of numbers in [0 .. n[
|
||||
;; count number of comparisons
|
||||
(define (qtest (n 10000))
|
||||
(set! compare 0)
|
||||
(quicksort (shuffle (iota n)) >)
|
||||
(writeln 'n n 'compare# compare ))
|
||||
|
||||
(qtest 1000)
|
||||
n 1000 compare# 12764
|
||||
(qtest 10000)
|
||||
n 10000 compare# 277868
|
||||
(qtest 100000)
|
||||
n 100000 compare# 6198601
|
||||
Loading…
Add table
Add a link
Reference in a new issue