/ / Laufzeit von Set! und beginne mit Schema / Racket - Schema, Racket

Laufzeit des Sets! und beginne im Schema / Schläger - Schema, Schläger

Kennt jemand die Laufzeit? set! und begin ist in Schema / Schläger?

Ich denke set! ist konstant aber ich bin mir nicht sicher.

Antworten:

2 für die Antwort № 1

einstellen! ist O (1). In dieser Hinsicht gibt es keinen Unterschied zwischen Schema und anderen Sprachen.


2 für die Antwort № 2

Eine Einschränkung: Set! und beginnen beide haben Unterausdrücke. Wenn einer dieser Schritte lange dauert, dann Bewertung des Sets! (oder beginnen) wird auch.


2 für die Antwort № 3

Das set! Operation ordnet einen Wert einfach einem Symbol zu ("bindet") O(1) in jeder selbstsüchtigen Programmiersprache. Das Suchen nach einer Bindung muss nicht unbedingt sein O(1) Abhängig von den Implementierungsdetails, aber das ist eine ganz andere Sache (ich kenne die Besonderheiten für Racket nicht).

Bezüglich beginDas ist ein Sequenzierungsformular, dessen Anwendung keine Kosten verursacht, nur der Inhalt (die darin enthaltenen Ausdrücke) bestimmt seine zeitliche Komplexität. Gleiches für set!, das Wert Ein Teil der Aufgabe kann einige Zeit dauern, um zu bewerten, aber die set! Bedienung selbst ist O(1)


1 für die Antwort № 4

Wenn Sie über die Leistung von besorgt sind set!Denken Sie daran, dass die Vermeidung von Mutationen schneller sein kann. Sehen Racket Guide: Mutation und Leistung.