From 1e8301139a72c5a65ebf207c3170e5e653b01eea Mon Sep 17 00:00:00 2001 From: ergz Date: Sun, 20 Aug 2023 16:23:05 -0700 Subject: [PATCH 1/2] cant figure out qs in python --- python/quicksort.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 python/quicksort.py diff --git a/python/quicksort.py b/python/quicksort.py new file mode 100644 index 0000000..8e1533b --- /dev/null +++ b/python/quicksort.py @@ -0,0 +1,20 @@ +def partition(arr, lo, hi): + pivot_value = arr[hi] + current_index = lo - 1 + + for i in range(lo, hi): + if arr[i] <= pivot_value: + current_index += 1 + arr[current_index], arr[i] = arr[i], arr[current_index] + current_index += 1 + arr[hi] = arr[current_index] + arr[current_index] = pivot_value + return current_index + +def quicksort(arr, lo, hi): + if lo < hi: + part = partition(arr, lo, hi) + partition(arr, lo, part - 1) + partition(arr, part + 1, hi) + + From 2a38f98d37073a15d23d4d5bec0d62f811df186b Mon Sep 17 00:00:00 2001 From: ergz Date: Sun, 20 Aug 2023 16:34:37 -0700 Subject: [PATCH 2/2] fixed a dumb error --- python/quicksort.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/quicksort.py b/python/quicksort.py index 8e1533b..5b47b24 100644 --- a/python/quicksort.py +++ b/python/quicksort.py @@ -14,7 +14,7 @@ def partition(arr, lo, hi): def quicksort(arr, lo, hi): if lo < hi: part = partition(arr, lo, hi) - partition(arr, lo, part - 1) - partition(arr, part + 1, hi) + quicksort(arr, lo, part - 1) + quicksort(arr, part + 1, hi)