June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -0,0 +1,27 @@
|
|||
(tc +)
|
||||
|
||||
(define swap
|
||||
{ (vector number) --> number --> number --> (vector number) }
|
||||
A I1 I2 -> (let Z (<-vector A I1)
|
||||
(do (vector-> A I1 (<-vector A I2))
|
||||
(vector-> A I2 Z))))
|
||||
|
||||
(define one-pass
|
||||
{ (vector number) --> number --> boolean --> number --> boolean }
|
||||
A N Swapped N -> (do (if (> (<-vector A (- N 1)) (<-vector A N))
|
||||
(swap A (- N 1) N))
|
||||
Swapped)
|
||||
A N Swapped I -> (if (> (<-vector A (- I 1)) (<-vector A I))
|
||||
(do (swap A (- I 1) I)
|
||||
(one-pass A N true (+ I 1)))
|
||||
(one-pass A N Swapped (+ I 1))))
|
||||
|
||||
(define bubble-h
|
||||
{ boolean --> (vector number) --> number --> (vector number) }
|
||||
true A N -> (bubble-h (one-pass A N false 2) A N)
|
||||
false A N -> A)
|
||||
|
||||
(define bubble-sort
|
||||
{ (vector number) --> (vector number) }
|
||||
A -> (let N (limit A)
|
||||
(bubble-h (one-pass A N false 2) A N)))
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
(datatype some-globals
|
||||
|
||||
__________
|
||||
(value *arr*) : (vector number);)
|
||||
|
||||
(set *arr* (vector 5))
|
||||
(vector-> (value *arr*) 1 5)
|
||||
(vector-> (value *arr*) 2 1)
|
||||
(vector-> (value *arr*) 3 4)
|
||||
(vector-> (value *arr*) 4 2)
|
||||
(vector-> (value *arr*) 5 8)
|
||||
(bubble-sort (value *arr*))
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
(tc +)
|
||||
|
||||
(define bubble-shot
|
||||
{ (vector number) --> (vector number) }
|
||||
(@v A <>) -> (@v A <>)
|
||||
(@v A B R) -> (@v B (bubble-shot (@v A R))) where (> A B)
|
||||
(@v A R) -> (@v A (bubble-shot R)))
|
||||
|
||||
(define bubble-sort
|
||||
{ (vector number) --> (vector number) }
|
||||
X -> (fix (function bubble-shot) X))
|
||||
|
|
@ -0,0 +1 @@
|
|||
(bubble-sort (@v 5 1 4 2 3 <>))
|
||||
Loading…
Add table
Add a link
Reference in a new issue