Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Algorithmic efficiency
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Background== The importance of efficiency with respect to time was emphasized by [[Ada Lovelace]] in 1843 as applied to [[Charles Babbage]]'s mechanical analytical engine: <blockquote>"In almost every computation a great variety of arrangements for the succession of the processes is possible, and various considerations must influence the selections amongst them for the purposes of a calculating engine. One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation"<ref>{{ Citation | last1 = Green | first1 = Christopher | title = Classics in the History of Psychology | url = http://psychclassics.yorku.ca/Lovelace/lovelace.htm | access-date = 19 May 2013 }}</ref></blockquote> Early [[electronic computer]]s had both limited [[clock cycle|speed]] and limited [[random access memory]]. Therefore, a [[space–time trade-off]] occurred. A [[Task (computing)|task]] could use a fast algorithm using a lot of memory, or it could use a slow algorithm using little memory. The engineering trade-off was therefore to use the fastest algorithm that could fit in the available memory. Modern computers are significantly faster than early computers and have a much larger amount of memory available ([[Orders of magnitude (computing)|gigabytes instead of kilobytes]]). Nevertheless, [[Donald Knuth]] emphasized that efficiency is still an important consideration: <blockquote> "In established engineering disciplines a 12% improvement, easily obtained, is never considered marginal and I believe the same viewpoint should prevail in software engineering"<ref name="Knuth1974">{{ Citation |last1=Knuth |first1=Donald |title=Structured Programming with go-to Statements |journal=Computing Surveys |volume=6 |issue=4 |pages=261–301 |year=1974 |url=http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf |access-date=19 May 2013 |url-status=dead |archive-url=https://web.archive.org/web/20090824073244/http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf |archive-date=24 August 2009 |doi=10.1145/356635.356640 |citeseerx=10.1.1.103.6084 |s2cid=207630080 }}</ref></blockquote>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)