CS 222 - 01 Final Project

kittenj
FinalProject-original.zip

Final Project/bubbleSort.py

def bubbleSort(alist): for passnum in range(len(alist) - 1, 0, -1): for i in range(passnum): if alist[i] > alist[i + 1]: temp = alist[i] alist[i] = alist[i + 1] alist[i + 1] = temp

Final Project/insertionSort.py

def insertionSort(alist): for index in range(1, len(alist)): currentValue = alist[index] position = index while position > 0 and alist[position - 1] > currentValue: alist[position] = alist[position - 1] position = position - 1 alist[position] = currentValue

Final Project/mergeSort.py

def mergeSort(alist): if len(alist) > 1: mid = len(alist) // 2 lefthalf = alist[:mid] righthalf = alist[mid:] mergeSort(lefthalf) mergeSort(righthalf) i = 0 j = 0 k = 0 while i < len(lefthalf) and j < len(righthalf): if lefthalf[i] < righthalf[j]: alist[k] = lefthalf[i] i = i + 1 else: alist[k] = righthalf[j] j = j + 1 k = k + 1 while i < len(lefthalf): alist[k] = lefthalf[i] i = i + 1 k = k + 1 while j < len(righthalf): alist[k] = righthalf[j] j = j + 1 k = k + 1

Final Project/selectionSort.py

def selectionSort(alist): for fillslot in range (len(alist) - 1, 0, -1): positionOfMax = 0 for location in range(1, fillslot + 1): if alist[location] > alist[positionOfMax]: positionOfMax = location temp = alist[fillslot] alist[fillslot] = alist[positionOfMax] alist[positionOfMax] = temp

Final Project/shellSort.py

def shellSort(alist): sublistCount = len(alist) // 2 while sublistCount > 0: for startPosition in range(sublistCount): gapInsertionSort(alist, startPosition, sublistCount) sublistCount = sublistCount // 2 def gapInsertionSort(alist, start, gap): for i in range(start + gap, len(alist), gap): currentValue = alist[i] position = i while position >= gap and \ alist[position - gap] > currentValue: alist[position] = alist[position - gap] position = position - gap alist[position] = currentValue