diff --git a/AlgoPy/OrderedBinarySearch.py b/AlgoPy/OrderedBinarySearch.py new file mode 100644 index 000000000..65d20d91f --- /dev/null +++ b/AlgoPy/OrderedBinarySearch.py @@ -0,0 +1,34 @@ +def Ordered_binary_Search(olist, item): + + if len(olist) == 0: + return False + else: + midpoint = len(olist) // 2 + if olist[midpoint] == item: + return True + else: + if item < olist[midpoint]: + return binarySearch(olist[:midpoint], item) + else: + return binarySearch(olist[midpoint+1:], item) + +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 + +print(Ordered_binary_Search([0, 1, 3, 8, 14, 18, 19, 34, 52], 3)) +print(Ordered_binary_Search([0, 1, 3, 8, 14, 18, 19, 34, 52], 17)) diff --git a/AlgoPy/SelectionSort.py b/AlgoPy/SelectionSort.py new file mode 100644 index 000000000..3bb1c3d29 --- /dev/null +++ b/AlgoPy/SelectionSort.py @@ -0,0 +1,15 @@ + +def selectionSort(nlist): + for fillslot in range(len(nlist)-1,0,-1): + maxpos=0 + for location in range(1,fillslot+1): + if nlist[location]>nlist[maxpos]: + maxpos = location + + temp = nlist[fillslot] + nlist[fillslot] = nlist[maxpos] + nlist[maxpos] = temp + +nlist = [14,46,43,27,57,41,45,21,70] +selectionSort(nlist) +print(nlist)