Sorting algorithms/Heapsort: Difference between revisions
Content added Content deleted
(D was not in it's correct alphabetical order) |
|||
Line 375: | Line 375: | ||
=={{header|Clojure}}== |
=={{header|Clojure}}== |
||
{{trans|OCaml}} |
|||
<lang lisp> |
<lang lisp> |
||
(defn- swap [a i j] |
(defn- swap [a i j] |
||
(assoc a i (nth a j) j (nth a i))) |
(assoc a i (nth a j) j (nth a i))) |
||
(defn- sift [a pred k l] |
(defn- sift [a pred k l] |
||
(loop [a a x k y (inc (* 2 k))] |
(loop [a a x k y (inc (* 2 k))] |
||
Line 391: | Line 390: | ||
a))) |
a))) |
||
(defn |
(defn- heapify[pred a len] |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
(defn heap-sort |
|||
([a pred] |
([a pred] |
||
(let [len (count a)] |
(let [len (count a)] |
||
(heapify pred a len))) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
([a] |
([a] |
||
( |
(heap-sort a <))) |
||
</lang> |
</lang> |
||
Example usage: |
Example usage: |
||
Line 411: | Line 414: | ||
[1 2 2 3 4 6 6] |
[1 2 2 3 4 6 6] |
||
</lang> |
</lang> |
||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |