Anonymous user
Sorting algorithms/Heapsort: Difference between revisions
→{{header|Clojure}}
(D was not in it's correct alphabetical order) |
|||
Line 375:
=={{header|Clojure}}==
<lang lisp>
(defn- swap [a i j]
(assoc a i (nth a j) j (nth a i)))
(defn- sift [a pred k l]
(loop [a a x k y (inc (* 2 k))]
Line 391 ⟶ 390:
a)))
(defn-
(defn heap-sort
([a pred]
(let [len (count a)]
(heapify pred a len)))
▲ (reduce (fn [c term] (sift (swap c term 0) pred 0 term))
▲ (reduce (fn [c i] (sift c pred i len))
▲ (vec a)
▲ (range (dec (int (/ len 2))) -1 -1))
▲ (range (dec len) 0 -1))))
([a]
(
</lang>
Example usage:
Line 411 ⟶ 414:
[1 2 2 3 4 6 6]
</lang>
=={{header|Common Lisp}}==
|