Skip to content

Instantly share code, notes, and snippets.

@ButlerFuqua
Created April 5, 2021 10:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ButlerFuqua/0daa388b8214d0abecd784b8546acf73 to your computer and use it in GitHub Desktop.
Save ButlerFuqua/0daa388b8214d0abecd784b8546acf73 to your computer and use it in GitHub Desktop.
## O(1) Constant
```py
FindMin(x, y) {
if (x < y) {
return x
}
else {
return y
}
}
```
## O(log N) Logarithmic
```py
BinarySearch(numbers, N, key) {
mid = 0
low = 0
high = N - 1
while (high >= low) {
mid = (high + low) / 2
if (numbers[mid] < key) {
low = mid + 1
}
else if (numbers[mid] > key) {
high = mid - 1
}
else {
return mid
}
}
return -1 // not found
}
```
## O(N) Linear
```py
LinearSearch(numbers, numbersSize, key) {
for (i = 0; i < numbersSize; ++i) {
if (numbers[i] == key) {
return i
}
}
return -1 // not found
}
```
## O(N log N) Log-linear
```py
MergeSort(numbers, i, k) {
j = 0
if (i < k) {
j = (i + k) / 2 // Find midpoint
MergeSort(numbers, i, j) // Sort left part
MergeSort(numbers, j + 1, k) // Sort right part
Merge(numbers, i, j, k) // Merge parts
}
}
```
## O(N2) Quadratic
```py
SelectionSort(numbers, numbersSize) {
for (i = 0; i < numbersSize; ++i) {
indexSmallest = i
for (j = i + 1; j < numbersSize; ++j) {
if (numbers[j] < numbers[indexSmallest]) {
indexSmallest = j
}
}
temp = numbers[i]
numbers[i] = numbers[indexSmallest]
numbers[indexSmallest] = temp
}
```
## O(c2) Exponential
```py
Fibonacci(N) {
if ((1 == N) || (2 == N)) {
return 1
}
return Fibonacci(N-1) + Fibonacci(N-2)
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment