Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
11
Task/Quickselect-algorithm/Racket/quickselect-algorithm.rkt
Normal file
11
Task/Quickselect-algorithm/Racket/quickselect-algorithm.rkt
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(define (quickselect A k)
|
||||
(define pivot (list-ref A (random (length A))))
|
||||
(define A1 (filter (curry > pivot) A))
|
||||
(define A2 (filter (curry < pivot) A))
|
||||
(cond
|
||||
[(<= k (length A1)) (quickselect A1 k)]
|
||||
[(> k (- (length A) (length A2))) (quickselect A2 (- k (- (length A) (length A2))))]
|
||||
[else pivot]))
|
||||
|
||||
(define a '(9 8 7 6 5 0 1 2 3 4))
|
||||
(display (string-join (map number->string (for/list ([k 10]) (quickselect a (+ 1 k)))) ", "))
|
||||
Loading…
Add table
Add a link
Reference in a new issue