From charlesreid1

(Created page with "=Algorithmic analysis= While each data container is implemented differently, due to different tradeoffs between storage space and algorithmic complexity, it is useful to defi...")
 
No edit summary
Line 1: Line 1:
=Algorithmic analysis=
==Algorithmic analysis==


While each data container is implemented differently, due to different tradeoffs between storage space and algorithmic complexity, it is useful to define a set of core tests for algorithmic analysis of data structures.  
While each data container is implemented differently, due to different tradeoffs between storage space and algorithmic complexity, it is useful to define a set of core tests for algorithmic analysis of data structures.  
Line 5: Line 5:
We begin with lists, which are arguably the simplest.
We begin with lists, which are arguably the simplest.


==Big O complexity analysis==
===Big O complexity analysis===


To perform a big O complexity analysis, we utilize random but seeded inputs that statistically sample the input space in a representative way. This ensures we aren't getting stuck measuring the runtime of a worst-case or best-case, and thus getting a skewed view of the algorithm.
To perform a big O complexity analysis, we utilize random but seeded inputs that statistically sample the input space in a representative way. This ensures we aren't getting stuck measuring the runtime of a worst-case or best-case, and thus getting a skewed view of the algorithm.
Line 11: Line 11:
Corner cases and other kinds of timing tests, like adding and removing at a high, balanced rate and having a near-empty queue with high throughput.
Corner cases and other kinds of timing tests, like adding and removing at a high, balanced rate and having a near-empty queue with high throughput.


==Memory usage==
===Memory usage===


No way to measure memory usage of objects in-memory, left on our own performing memory profiling.
No way to measure memory usage of objects in-memory, we are left on our own to performing memory profiling.
 
 
 
==Flags==
 
{{DataStructuresFlag}}
 
[[Category:Algorithm analysis]]
[[Category:Lists]]
[[Category:Linked Lists]]
[[Category:Queues]]

Revision as of 00:49, 5 June 2017

Algorithmic analysis

While each data container is implemented differently, due to different tradeoffs between storage space and algorithmic complexity, it is useful to define a set of core tests for algorithmic analysis of data structures.

We begin with lists, which are arguably the simplest.

Big O complexity analysis

To perform a big O complexity analysis, we utilize random but seeded inputs that statistically sample the input space in a representative way. This ensures we aren't getting stuck measuring the runtime of a worst-case or best-case, and thus getting a skewed view of the algorithm.

Corner cases and other kinds of timing tests, like adding and removing at a high, balanced rate and having a near-empty queue with high throughput.

Memory usage

No way to measure memory usage of objects in-memory, we are left on our own to performing memory profiling.


Flags