Time Complexity
Time Complexity
Space
Data Time complexity: Time complexity:
Algorithm Time complexity: Best complexity:
structure Average Worst
Worst
Merge sort Array O(n log(n)) O(n log(n)) O(n log(n)) O(n)
O(n// when all
Heap sort Array O(n log(n)) O(n log(n)) O(1)
elements are same)
Smooth
Array O(n) O(n log(n)) O(n log(n)) O(1)
sort
Bubble
Array O(n) O(n2) O(n2) O(1)
sort
Insertion
Array O(n) O(n2) O(n2) O(1)
sort
Selection
Array O(n2) O(n2) O(n2) O(1)
sort
Data structures
O(1) O(1)
Unsorted array (see note) (see note) N/A O(1) O(n) O(n) O(n) O(n)
Sorted array O(n) O(n) N/A O(1) O(log n) O(1) O(1) O(n)
Stack
Queue
Unsorted linked list O(1) O(1)[1] N/A O(n) O(n) O(n) O(n) O(n)
Sorted linked list O(n) O(1)[1] N/A O(n) O(n) O(1) O(1) O(n)
Skip list
Self-balancing binary
O(log n) O(log n) O(log n) N/A O(log n) O(log n) O(log n) O(n)
search tree
O(1) for a min- O(1) for a max-
heap heap
Heap O(log n) O(log n) O(log n) N/A O(n) O(n)
O(n) for a max- O(n) for a min-
heap[2] heap[2]
Hash table O(1) O(1) O(n) N/A O(1) O(n) O(n) O(n)