diff --git a/binary_search.py b/binary_search.py new file mode 100644 index 0000000000..c2b1c51c5f --- /dev/null +++ b/binary_search.py @@ -0,0 +1,24 @@ +def binary_search(arr, target): + left = 0 + right = len(arr) - 1 + mid = left + (right - left) // 2 + print("left: ", left) + print("right: ", right) + print("mid: ", mid) + while left <= right: + if arr[mid] == target: + return mid + elif arr[mid] < target: + left = mid + 1 + else: + right = mid - 1 + mid = left + (right - left) // 2 + # print("left: ", left) + # print("right: ", right) + # print("mid: ", mid) + return -1 + +arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] +target = 4 +mid = binary_search(arr, target) +print("target index: ", mid) diff --git a/merge_sort.py b/merge_sort.py new file mode 100644 index 0000000000..9acd437aa1 --- /dev/null +++ b/merge_sort.py @@ -0,0 +1,32 @@ +def merge_sort(A): + if len(A) > 1: + mid = len(A) // 2 + B = A[:mid] + C = A[mid:] + merge_sort(B) + merge_sort(C) + + i = j = k = 0 + + while i < len(B) and j < len(C): + if B[i] < C[j]: + A[k] = B[i] + i += 1 + else: + A[k] = C[j] + j +=1 + k += 1 + + while i < len(B): + A[k] = B[i] + i += 1 + k += 1 + + while j < len(C): + A[k] = C[j] + j += 1 + k += 1 + +A = [9,8,7,6,5,4,3,2,1] +merge_sort(A) +print(A) \ No newline at end of file