Lecture Notes on 11 November 2009 # Binary Search function that searches for x in a list a # It returns the position of x if it finds it or -1 if it does not. def binarySearch (a, x): lo = 0 hi = len(a) - 1 while (lo <= hi): mid = (lo + hi) /2 if (x < a[mid]): hi = mid - 1 elif (x > a[mid]): lo = mid + 1 else: return mid return -1 # Sorts a list a by finding minimums and swapping them elements in the list def selectionSort (a): limit = len(a) for i in range (limit - 1): min = a[i] minIdx = i for j in range (i + 1, limit): if (a[j] < min): min = a[j] minIdx = j a[minIdx] = a[i] a[i] = min def main(): a = [9, 1, 8, 2, 3, 7, 4, 6, 5] print a selectionSort (a) print a main()