Skip to content

Instantly share code, notes, and snippets.

@marionette-of-u
Created August 24, 2012 08:22
Show Gist options
  • Select an option

  • Save marionette-of-u/3447440 to your computer and use it in GitHub Desktop.

Select an option

Save marionette-of-u/3447440 to your computer and use it in GitHub Desktop.
(ns org.program.main)
(defn qsort [v]
(cond
(>= 1 (count v)) v
:else (let [p (first v)
r (rest v)
sieve (fn self [[arg-vec cmp-fn]]
(concat
(if (cmp-fn (first arg-vec) p) [(first arg-vec)] [])
(if (zero? (count (rest arg-vec))) [] (self [(rest arg-vec) cmp-fn]))))]
(vec (concat (qsort (sieve [r (fn [x y] (< x y))])) [p] (qsort (sieve [r (fn [x y] (>= x y))])))))))
(defn -main [n]
(qsort n))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment