def binarySearch(alist, item): first = 0 last = len(alist)-1 found = False while first <= last and not found: midpoint = (first + last) // 2 if alist[midpoint] == item: found = True else: if item < alist[midpoint]: last = midpoint-1 else: first = midpoint+1 return found
recursion
function recursive(input): if input <= 0 return input else output = recursive(input - 1) return output
fib
function getFib(position){ if (position == 0) { return 0; } if (position == 1) { return 1; } var first = 0, second = 1, next = first + second; for (var i = 2; i < position; i++){ first = second; second = next; next = first + second; } return next; }
def get_fib(position): if position == 0 or position == 1: return position return get_fib(position -1) + get_fib(position -2)
margin sort efficiency
log(n)
1, 4(log n1),8(log n3), 16(log n4)
ease yourself by commic
https://xkcd.com/1185/
margin sort text
http://algs4.cs.princeton.edu/22mergesort/
quick sort
def quicksort(array): if len(array) < 1: return array pivot = array[0] left = [] right = [] for x in range(1, len(array)): if array[x] <= pivot: left.append(array[x]) else: right.append(array[x]) left = quicksort(left) right = quicksort(right) foo = [pivot] return left + foo + right
list: A B C
set: C A B