Läßt nehmen, dass ich diese Eingabe haben: eine Liste der ListeKarte reduzieren Komplexität
(def list-of-list-3 (Liste (Liste 1 2 3) (Liste 4 5 6) (list 7 8 9)))
(Karte # (reduzieren *% 1) list-of-list3)
die Karten reduzieren hat eine O (n^2) Komplexität in diesem Fall?
ist map-reduce übersetzt als zwei verschachtelt für?
Also, wenn ich das obige Beispiel auf der Clojure REPL ausführen, scheint die Komplexität Zeit wie O (n).
wenn ich die Eingabegröße dupliziere (Liste-Liste-6 (Liste (Liste 1 2 3) (Liste 4 5 6) (Liste 7 8 9) (Liste 8 2 3) (Liste 9 8 1) (Liste 7 6 4))) Die Zeit steigt linear, nicht quadratisch.
Kann jemand sagen warum?
Dank im Voraus
Es wäre eine gute Idee sein, entfernen Sie ‚Java‘ aus der Tag-Liste. Die Implementierung sieht wie eine LISP-Variante aus. – Davidann
Ja David, ich werde. Diese Variante heißt Clojure, eine weitere JVM-Sprache. Es ist wirklich abgefahren ! Meine nächsten Sprachen werden Scala oder Clojure sein. : D – CHAPa