Network
Language · FA
Dark mode

ALGORITHMS

Algorithm complexity

Big-O notation reference, sorting algorithm comparison.

Big-O Complexity Classesکلاس‌های پیچیدگی Big-O

NotationNameGrowthn=10n=100n=1,000Example
O(1)Constant111Array index, hash lookup
O(log n)Logarithmic●●3710Binary search, balanced BST
O(n)Linear●●●101001,000Linear search, single loop
O(n log n)Linearithmic●●●●336649,966Merge sort, Heap sort, FFT
O(n²)Quadratic▲▲▲▲▲10010,0001,000,000Bubble sort, nested loops
O(n³)Cubic▲▲▲▲▲▲1,0001,000,00010⁹Matrix multiplication (naive)
O(2ⁿ)Exponential1,02410³⁰10³⁰¹Recursive Fibonacci, subsets
O(n!)Factorial⬛⬛3,628,8009×10¹⁵⁷Permutations, brute-force TSP

Sorting Algorithmsالگوریتم‌های مرتب‌سازی

AlgorithmBestAverageWorstSpaceStableNote
Bubble sortO(n)O(n²)O(n²)O(1)YesSimple, slow
Selection sortO(n²)O(n²)O(n²)O(1)NoMinimum swaps
Insertion sortO(n)O(n²)O(n²)O(1)YesGood for small / nearly sorted
Merge sortO(n log n)O(n log n)O(n log n)O(n)YesGuaranteed, extra memory
Quick sortO(n log n)O(n log n)O(n²)O(log n)NoFast in practice, pivot matters
Heap sortO(n log n)O(n log n)O(n log n)O(1)NoIn-place, not cache-friendly
Tim sortO(n)O(n log n)O(n log n)O(n)YesPython & Java default sort
Counting sortO(n+k)O(n+k)O(n+k)O(k)YesInteger keys only
Radix sortO(nk)O(nk)O(nk)O(n+k)YesNon-comparison, fixed digits
Shell sortO(n log n)O(n^1.3)O(n²)O(1)NoGap-based insertion

Data Structure Operationsعملیات ساختار داده

StructureAccessSearchInsertDeleteSpace
ArrayO(1)O(n)O(n)O(n)O(n)
Linked ListO(n)O(n)O(1)O(1)O(n)
StackO(n)O(n)O(1)O(1)O(n)
QueueO(n)O(n)O(1)O(1)O(n)
Hash TableO(1) avgO(1) avgO(1) avgO(n)
Binary Search TreeO(log n) avgO(log n) avgO(log n) avgO(log n) avgO(n)
AVL TreeO(log n)O(log n)O(log n)O(log n)O(n)
B-TreeO(log n)O(log n)O(log n)O(log n)O(n)
Min/Max HeapO(1) peekO(n)O(log n)O(log n)O(n)
TrieO(k)O(k)O(k)O(k)O(n·k)
Graph (adj. matrix)O(1)O(V²)O(1)O(1)O(V²)
Graph (adj. list)O(V+E)O(V+E)O(1)O(E)O(V+E)

k = key length, V = vertices, E = edges, n = elements. avg = average case.