Tuesday, October 25, 2011

bubble sort


(defn bubble-sort
([xs]
(loop [x xs j (count xs)]
(if (> j 0) (recur (bubble-sort x 0 j) (- j 1))
x)))

([xs i j]
(if (< (+ i 1) j)
(let [x (xs i) y (xs (+ i 1))]
(recur (if (> x y) (assoc (assoc xs (+ i 1) x) i y) xs)
(+ 1 i) j))
xs))
)

No comments:

Post a Comment