File tree Expand file tree Collapse file tree 1 file changed +16
-21
lines changed
quick-sort/src/quick_sort Expand file tree Collapse file tree 1 file changed +16
-21
lines changed Original file line number Diff line number Diff line change 22 (:gen-class ))
33
44
5- (defn insert
6- [l]
7- (let [k (first l)
8- l (rest l)
9- t (concat
10- (filter #(<= % k) l)
11- [k]
12- (filter #(> % k) l))]
13- (.indexOf t k)))
14-
15- ; ; (defn quicksort
16- ; ; [arg]
17- ; ; (if (empty? arg)
18- ; ; nil
19- ; ; (let [x (insert arg)
20- ; ; y (nth arg x)
21- ; ; arg (rmve y arg)
22- ; ; [left right] (split-at x arg)]
23- ; ; (println y))))
24- ; ; (concat (quicksort left) (quicksort right)))))
5+ ; ; (defn pivot-index
6+ ; ; [l]
7+ ; ; (let [k (first l)
8+ ; ; l (rest l)
9+ ; ; t (concat
10+ ; ; (filter #(<= % k) l)
11+ ; ; [k]
12+ ; ; (filter #(> % k) l))]
13+ ; ; (.indexOf t k)))
2514
15+ (defn qsort [[pivot & xs]]
16+ (when pivot
17+ (let [smaller #(< % pivot)]
18+ (lazy-cat (qsort (filter smaller xs))
19+ [pivot]
20+ (qsort (remove smaller xs))))))
2621(defn -main
2722 [& args]
28- (println (quicksort '(3 8 6 4 7 5 0 2 1 ))))
23+ (println (qsort '(3 8 6 4 7 5 0 2 1 ))))
You can’t perform that action at this time.
0 commit comments