Add something here ...
Add something here ...
Add something here ...
Add something here ...
#lang racket (require (only-in srfi/43 vector-swap!)) (define (heap-sort! xs) (define (ref i) (vector-ref xs i)) (define (swap! i j) (vector-swap! xs i j)) (define size (vector-length xs)) (define (sift-down! r end) (define c (+ (* 2 r) 1)) (define c+1 (+ c 1)) (when (<= c end) (define child (if (and (<= c+1 end) (< (ref c) (ref c+1))) c+1 c)) (when (< (ref r) (ref child)) (swap! r child)) (sift-down! child end))) (for ([i (in-range (quotient (- size 2) 2) -1 -1)]) (sift-down! i (- size 1))) (for ([end (in-range (- size 1) 0 -1)]) (swap! 0 end) (sift-down! 0 (- end 1))) xs)
The complete source file for a Heapsort in the Racket programmming language.
kc4zvw@www:~$ racket uriah.rkt 'done '#(2 4 5 7 8 9 13 14 15 16 17 20 23 24 27 28 31 34 35 36 39 40 43 45 47 48 49 51 55 56 57 59 61 62 65 68 70 71 72 73 74 76 77 78 79 82 85 87 88 89) kc4zvw@www:~$
Add something here ...
Add something here ...