From a6607d9718aa320fce1e0a2d392483cc3c43dae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Wahr=C3=A9us?= Date: Wed, 20 May 2026 15:22:27 +0200 Subject: [PATCH 1/2] Added Merge Sort --- algorithms/merge_sort.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 algorithms/merge_sort.py diff --git a/algorithms/merge_sort.py b/algorithms/merge_sort.py new file mode 100644 index 0000000..d83ce76 --- /dev/null +++ b/algorithms/merge_sort.py @@ -0,0 +1,33 @@ +def merge_sort(numbers): + if len(numbers) <= 1: + return numbers + midpoint = len(numbers) // 2 + left = merge_sort(numbers[:midpoint]) + right = merge_sort(numbers[midpoint:]) + return merge(left, right) + + +def merge(left, right): + merged = [] + i = 0 + j = 0 + while i < len(left) and j < len(right): + if left[i] <= right[j]: + merged.append(left[i]) + i += 1 + else: + merged.append(right[j]) + j += 1 + merged.extend(left[i:]) + merged.extend(right[j:]) + return merged + + +def main() -> None: + numbers = [4, 2, 7, 1, 9, 6, 5, 8, 3] + print("Unsorted list:", numbers) + print("Sorted list: ", merge_sort(numbers)) + + +if __name__ == "__main__": + main() \ No newline at end of file From 881ddd50edd875779a1ceb089d6531c1e5a6f68d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Wahr=C3=A9us?= Date: Wed, 20 May 2026 15:30:35 +0200 Subject: [PATCH 2/2] Updated README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f8c4d15..9b1fa86 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ A repo for storing Python code and tracking learning progress. All programs are │ ├── binary_search.py │ ├── bubble_sort.py │ ├── dfs.py +│ ├── merge_sort.py │ ├── quicksort.py │ └── selection_sort.py ├── asynchronous_programming