You are on page 1of 3

Key

Good

Fair

Poor

DataStructures
DataStructure

Space
Complexity

TimeComplexity
Average
Indexing

Worst
Search

Worst

Insertion

Deletion

Indexing

Search

Insertion

Deletion

BasicArray(Array)

O(1)

O(n)

O(1)

O(n)

O(n)

DynamicArray(List<T>
andArrayList)

O(1)

O(n)

O(n)

O(n)

O(1)

O(n)

O(n)

O(n)

O(n)

SinglyLinkedList

O(n)

O(n)

O(1)

O(1)

O(n)

O(n)

O(1)

O(1)

O(n)

DoublyLinkedList
(LinkedList<T>)

O(n)

O(n)

O(1)

O(1)

O(n)

O(n)

O(1)

O(1)

O(n)

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

O(n)

O(n)

O(n)

O(nlog(n))

O(1)

O(1)

O(1)

O(n)

O(n)

O(n)

O(n)

BinarySearchTree
(SortedDictionary<TKey,
TValue>)

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

O(n)

O(n)

O(n)

O(n)

SortedArrayusingBinary
Search(SortedList<TKey,
TValue>)

O(log(n))

O(?)

O(1)

O(1)

O(log(n))

O(?)

O(n)

O(n)

O(?)

CartesianTree

O(log(n))

O(log(n))

O(log(n))

O(n)

O(n)

O(n)

O(n)

SplayTree

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

RedBlackTree
(SortedSet<T>No
Duplicates)

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

AVLTree

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

BTree

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

SkipList
HashTable(HashSet<T>
Dictionary<TKey,TValue>
andHashtable)

Searching
Algorithm

DataStructure

Space
Complexity

TimeComplexity
Average

Worst

Worst

DepthFirstSearch(DFS)

Graphof|V|verticesand|E|
edges

O(|E|+|V|)

O(|V|)

BreadthFirstSearch(BFS)

Graphof|V|verticesand|E|
edges

O(|E|+|V|)

O(|V|)

Sortedarrayofnelements

O(log(n))

O(log(n))

O(1)

Binarysearch(Array.BinarySearchor
List<T>.BinarySearch)

Linear(BruteForce)

Array

O(n)

O(n)

O(1)

ShortestpathbyDijkstra,
usingaMinheapaspriorityqueue

Graphwith|V|verticesand
|E|edges

O((|V|+|E|)
log|V|)

O((|V|+|E|)
log|V|)

O(|V|)

ShortestpathbyDijkstra,
usinganunsortedarrayaspriorityqueue

Graphwith|V|verticesand
|E|edges

O(|V|^2)

O(|V|^2)

O(|V|)

ShortestpathbyBellmanFord

Graphwith|V|verticesand
|E|edges

O(|V||E|)

O(|V||E|)

O(|V|)

Sorting
Data
Structure

Algorithm

Best
Quicksort(Array.SortandList<T>.Sortand
Enumerable.OrderBy<TSource,TKey>)

WorstCaseAuxiliary
SpaceComplexity

TimeComplexity
Average

Worst

Worst

Array

O(n
log(n))

O(n
log(n))

O(n^2)

O(n)

Array

O(n
log(n))

O(n
log(n))

O(n
log(n))

O(n)

Array

O(n
log(n))

O(n
log(n))

O(n
log(n))

O(1)

BubbleSort

Array

O(n)

O(n^2)

O(n^2)

O(1)

InsertionSort

Array

O(n)

O(n^2)

O(n^2)

O(1)

SelectSort

Array

O(n^2)

O(n^2)

O(n^2)

O(1)

BucketSort

Array

O(n+k)

O(n+k)

O(n^2)

O(nk)

RadixSort

Array

O(nk)

O(nk)

O(nk)

O(n+k)

Mergesort

Heapsort

Heaps
Heaps

TimeComplexity
Heapify

FindMax

ExtractMax

IncreaseKey

Insert

Delete

Merge

LinkedList(sorted)

O(1)

O(1)

O(n)

O(n)

O(1)

O(m+n)

LinkedList(unsorted)

O(n)

O(n)

O(1)

O(1)

O(1)

O(1)

O(n)

O(1)

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(m+n)

BinomialHeap

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

FibonacciHeap

O(1)

O(log(n))*

O(1)*

O(1)

O(log(n))*

O(1)

BinaryHeap

Graphs
Node/EdgeManagement

Storage

AddVertex

AddEdge

RemoveVertex

RemoveEdge

Query

Adjacencylist

O(|V|+|E|)

O(1)

O(1)

O(|V|+|E|)

O(|E|)

O(|V|)

Incidencelist

O(|V|+|E|)

O(1)

O(1)

O(|E|)

O(|E|)

O(|E|)

Adjacencymatrix

O(|V|^2)

O(|V|^2)

O(1)

O(|V|^2)

O(1)

O(1)

Incidencematrix

O(|V||E|)

O(|V||E|)

O(|V||E|)

O(|V||E|)

O(|V||E|)

O(|E|)

BigOComplexityChart

You might also like