diff options
Diffstat (limited to '_legacy/algorithms')
-rw-r--r-- | _legacy/algorithms/binary_sort.py | 73 | ||||
-rw-r--r-- | _legacy/algorithms/bubble_sort.py | 39 | ||||
-rw-r--r-- | _legacy/algorithms/linear_search.py | 21 |
3 files changed, 133 insertions, 0 deletions
diff --git a/_legacy/algorithms/binary_sort.py b/_legacy/algorithms/binary_sort.py new file mode 100644 index 0000000..2e71b52 --- /dev/null +++ b/_legacy/algorithms/binary_sort.py @@ -0,0 +1,73 @@ +import random +def generate_test_data(length: int, _range: tuple): + arr = [] + for i in range(length): + arr.append(random.randint(int(_range[0]), int(_range[1]))) + return arr +def binsearch(arr, item): + arr = sorted(arr) + print(arr) + ubound, lbound = len(arr) - 1, 0 + found = False + while not found and lbound <= ubound: + index = (lbound + ubound) // 2 + if arr[index] == item: + found = True + print("Found here") + return found + if arr[index] > item: + ubound = index - 1 + if arr[index] < item: + lbound = index + 1 + print("not found") + return found + + +def linear_search_while(arr: list, item): + found: bool = False + index = 0 + while not found and index < len(arr): + if (arr[index] == item): + found = True + break + index += 1 + return (found, index) +def linear_search(arr: list, item): + index = 0 + for _item in arr: + if _item == item: + return (True, index) + index += 1 + return False +def test_existsness(samples: int): + yes = 0 + no = 0 + for i in range(samples): + query = random.randint(0, 100) + array = generate_test_data(100, (0, 100)) + found = linear_search(array, query) + if found: + yes += 1 + else: + no += 1 + print(f"In {samples} samples, {yes} match, {no} don't") +def main(): + narr = sorted(["A", "B", "C", "D", "E"]) + print("Hello world") + array = generate_test_data(10, (0, 100)) + print(array) + query = int(input("Your query for item: ")) + qstring = input("String item: ") + binsearch(narr, query) + found1 = linear_search(array, query) + found2 = linear_search_while(array, query) + if found1[0]: + print("Found by for loop method ", found1[1]) + else: print("Not found.") + if found2[0]: + print("Found by while loop method ", found2[1]) + else: + print("Not found.") + test_existsness(100) +if __name__ == "__main__": + main() diff --git a/_legacy/algorithms/bubble_sort.py b/_legacy/algorithms/bubble_sort.py new file mode 100644 index 0000000..f77ea08 --- /dev/null +++ b/_legacy/algorithms/bubble_sort.py @@ -0,0 +1,39 @@ +import random +import string +CHARS = list(string.ascii_lowercase) +print(CHARS) +def generate_test_data(length: int, _range: tuple): + arr = [] + for i in range(length): + arr.append(random.randint(_range[0], _range[1])) + return arr +def bubsort(arr: list): + for i in range(len(arr)): + # print(arr) + changed = False + for j in range(len(arr) - i - 1): + if arr[j] > arr[j+1]: + swp = arr[j+1] + arr[j+1] = arr[j] + arr[j] = swp + changed = True + if not changed: return arr +def testarr_string(length: int): + arr = [] + for i in range(length): + string = "" + for i in range(10): + string += CHARS[random.randint(0,len(CHARS) - 1)] + arr.append(string) + print(arr) + return arr +def bubsort_reliability(samples: int): + y = 0 + n = 0 + for _ in range(samples): + test = generate_test_data(100, (0, 100)) + if bubsort(test) == sorted(test): y += 1 + else: n += 1 + if y == samples: print(f"{samples} checks passed!") +bubsort_reliability(100) +print(bubsort(testarr_string(10)))
\ No newline at end of file diff --git a/_legacy/algorithms/linear_search.py b/_legacy/algorithms/linear_search.py new file mode 100644 index 0000000..ae198d2 --- /dev/null +++ b/_legacy/algorithms/linear_search.py @@ -0,0 +1,21 @@ +import random +def generate_test_data(length: int, _range: tuple): + arr = [] + for i in range(length): + arr.append(random.randint(_range[0], _range[1])) + return arr +def linsearch(myList: list, valueToFind: int): + mindex: int = len(myList) - 1 + index: int = 0 + found = False + while not found and index <= mindex: + if myList[index] == valueToFind: + found = True + index += 1 + if found: print("VALUE FOUND!!!") + else: print("OH NO ITEM NOT FOUND IN LIST!!") +def main(): + inputFind = int(input("Value to find: ")) + linsearch(generate_test_data(10, (0, 1000)), inputFind) +if __name__ == "__main__": + main() |