(defn insert-sort [x]
(let [l (count x)]
(loop [xs x m 1]
(if (>= m l) xs
(let [v (xs m)
i (loop [s m]
(if (= s 0) 0
(if (> v (xs (- s 1))) s (recur (- s 1)))))]
(recur
(loop [x xs s m]
(if (= s i) (assoc x s v)
(recur (assoc x s (x (- s 1))) (- s 1))
))
(+ 1 m)))
))
))
No comments:
Post a Comment