From 3c5ca0fa14ab77dbf87bf643672e716494aad5ba Mon Sep 17 00:00:00 2001 From: metehaansever Date: Thu, 31 Oct 2019 15:12:00 +0300 Subject: [PATCH 1/4] recursive quick sort --- recursive-quick-sort | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 recursive-quick-sort diff --git a/recursive-quick-sort b/recursive-quick-sort new file mode 100644 index 000000000000..e719e7fa2718 --- /dev/null +++ b/recursive-quick-sort @@ -0,0 +1,6 @@ +def quick_sort(l): + if len(l) <= 1: + return l + else: + return quick_sort([e for e in l[1:] if e <= l[0]]) + [l[0]] +\ + quick_sort([e for e in l[1:] if e > l[0]]) From 3c7d5ac0c8ff1a2b9653572ee5c8cafae640dd7e Mon Sep 17 00:00:00 2001 From: metehaansever Date: Thu, 31 Oct 2019 15:20:16 +0300 Subject: [PATCH 2/4] recursive quick sort --- sorts/recursive-quick-sort.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sorts/recursive-quick-sort.py diff --git a/sorts/recursive-quick-sort.py b/sorts/recursive-quick-sort.py new file mode 100644 index 000000000000..e719e7fa2718 --- /dev/null +++ b/sorts/recursive-quick-sort.py @@ -0,0 +1,6 @@ +def quick_sort(l): + if len(l) <= 1: + return l + else: + return quick_sort([e for e in l[1:] if e <= l[0]]) + [l[0]] +\ + quick_sort([e for e in l[1:] if e > l[0]]) From 59d49d5a669f467c90fa9e7e4bd0d826907a3e10 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Thu, 31 Oct 2019 13:25:47 +0100 Subject: [PATCH 3/4] Delete recursive-quick-sort --- recursive-quick-sort | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 recursive-quick-sort diff --git a/recursive-quick-sort b/recursive-quick-sort deleted file mode 100644 index e719e7fa2718..000000000000 --- a/recursive-quick-sort +++ /dev/null @@ -1,6 +0,0 @@ -def quick_sort(l): - if len(l) <= 1: - return l - else: - return quick_sort([e for e in l[1:] if e <= l[0]]) + [l[0]] +\ - quick_sort([e for e in l[1:] if e > l[0]]) From 29bfaa10db63ab495c7bcf9613e733252c476ee5 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Thu, 31 Oct 2019 19:49:07 +0100 Subject: [PATCH 4/4] Update recursive-quick-sort.py --- sorts/recursive-quick-sort.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/sorts/recursive-quick-sort.py b/sorts/recursive-quick-sort.py index e719e7fa2718..c28a14e37ebd 100644 --- a/sorts/recursive-quick-sort.py +++ b/sorts/recursive-quick-sort.py @@ -1,6 +1,22 @@ -def quick_sort(l): - if len(l) <= 1: - return l +def quick_sort(data: list) -> list: + """ + >>> for data in ([2, 1, 0], [2.2, 1.1, 0], "quick_sort"): + ... quick_sort(data) == sorted(data) + True + True + True + """ + if len(data) <= 1: + return data else: - return quick_sort([e for e in l[1:] if e <= l[0]]) + [l[0]] +\ - quick_sort([e for e in l[1:] if e > l[0]]) + return ( + quick_sort([e for e in data[1:] if e <= data[0]]) + + [data[0]] + + quick_sort([e for e in data[1:] if e > data[0]]) + ) + + +if __name__ == "__main__": + import doctest + + doctest.testmod()