diff --git a/03_recursion/python/04_count.py b/03_recursion/python/04_count.py new file mode 100644 index 0000000..418fdc7 --- /dev/null +++ b/03_recursion/python/04_count.py @@ -0,0 +1,4 @@ +def count(arr): + if not arr: + return 0 + return 1 + count(arr[1:]) \ No newline at end of file diff --git a/03_recursion/python/05_binary_search_recursive.py b/03_recursion/python/05_binary_search_recursive.py new file mode 100644 index 0000000..7791559 --- /dev/null +++ b/03_recursion/python/05_binary_search_recursive.py @@ -0,0 +1,15 @@ +def binary_search(arr, target): + if not arr: + return -1 + if len(arr) == 1 and arr[0] == target: + return arr[0] + if len(arr) == 1 and arr[0] != target: + return -1 + low = 0 + high = len(arr) - 1 + mid = (low + high) // 2 + + if arr[mid] > target: + return binary_search(arr[:mid], target) + else: + return binary_search(arr[mid+1:], target) \ No newline at end of file diff --git a/03_recursion/python/06_find_max.py b/03_recursion/python/06_find_max.py new file mode 100644 index 0000000..9080084 --- /dev/null +++ b/03_recursion/python/06_find_max.py @@ -0,0 +1,5 @@ +def find_max(arr): + if len(arr) == 2: + return arr[0] if arr[0] > arr[1] else arr[1] + sub_max = find_max(arr[1:]) + return arr[0] if arr[0] > sub_max else sub_max \ No newline at end of file diff --git a/03_recursion/python/07_sum_array.py b/03_recursion/python/07_sum_array.py new file mode 100644 index 0000000..d71a0f2 --- /dev/null +++ b/03_recursion/python/07_sum_array.py @@ -0,0 +1,4 @@ +def sum_array(arr): + if not arr: + return 0 + return arr[0] + sum_array(arr[1:]) \ No newline at end of file