Quicksort using a variadic function

A quicksort algorithm http://en.wi... using a variadic function http://en.wi... implemented in Clojure
2
2 votes
(defn qsort
  "A quicksort algorithm using a variadic function:
   http://en.wikipedia.org/wiki/Variadic_function" 
  ([] []) 
  ([x & xs] 
     (concat (apply qsort (filter #(< % x) xs)) 
	     (cons x (apply qsort (filter #(>= % x) xs))))))

(time (println "sort-result: " (qsort 1 40 22 -2 110 9)))

  algorithms  clojure  sorting     Fork     Run Snippet!

blog comments powered by Disqus