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