Algorithm Complexity: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 36: Line 36:


<font color=darkgray>A method of analyzing running time of recursive algorithms is the "master theorem".</font>
<font color=darkgray>A method of analyzing running time of recursive algorithms is the "master theorem".</font>
=TODO=
* https://en.wikipedia.org/wiki/Big_O_notation
* http://infotechgems.blogspot.com/2011/11/java-collections-performance-time.html

Revision as of 18:59, 6 August 2018

Internal

Overview

Algorithm analysis aims at determining the amount of resources consumed by an algorithm while solving a computational problem. In most cases the resource being consumed is time. An analysis can also refer to memory, network bandwidth, etc.

An algorithm is usually analyzed in the context of a random-access machine. memory hierarchy.

Describe the RAM model that is used for analysis. Instruction set. Memory hierarchy.

Comparing running time for two algorithms of which one is c1n2 and the other is c2 n lg n, even if c2 ≥ c1, no matter how much smaller c1 is than c2, there will always be a crossover point beyond which the c2n lg n algorithm is faster.

Best-case running time.

Worst-case running time.

Average-case running time.

Expected running time.

Analysis of Insertion Sort

insertion sort

Recurrence

The running time of recursive algorithms can be analyzed using recurrences.



A method of analyzing running time of recursive algorithms is the "master theorem".