From 92e79189233a52156154986bc749605b0118410d Mon Sep 17 00:00:00 2001 From: Boris Galochkin <spore17@mail.ru> Date: Sat, 6 Nov 2021 22:53:53 +0300 Subject: [PATCH 1/4] Fix sorts/bucket_sort.py --- sorts/bucket_sort.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sorts/bucket_sort.py b/sorts/bucket_sort.py index 58242a1cb1f8..f600f0ff7d17 100644 --- a/sorts/bucket_sort.py +++ b/sorts/bucket_sort.py @@ -30,7 +30,7 @@ from __future__ import annotations -def bucket_sort(my_list: list) -> list: +def bucket_sort(my_list: list, bucket_count: int = 10) -> list: """ >>> data = [-1, 2, -5, 0] >>> bucket_sort(data) == sorted(data) @@ -43,19 +43,25 @@ def bucket_sort(my_list: list) -> list: True >>> bucket_sort([]) == sorted([]) True + >>> data = [-1e10, 1e10] + >>> bucket_sort(data) == sorted(data) + True >>> import random >>> collection = random.sample(range(-50, 50), 50) >>> bucket_sort(collection) == sorted(collection) True """ - if len(my_list) == 0: + + if len(my_list) == 0 or bucket_count <= 0: return [] + min_value, max_value = min(my_list), max(my_list) - bucket_count = int(max_value - min_value) + 1 + bucket_size = (max_value - min_value) / bucket_count buckets: list[list] = [[] for _ in range(bucket_count)] for i in range(len(my_list)): - buckets[(int(my_list[i] - min_value) // bucket_count)].append(my_list[i]) + index = min(int((my_list[i] - min_value) / bucket_size), bucket_count - 1) + buckets[index].append(my_list[i]) return [v for bucket in buckets for v in sorted(bucket)] From c2f569b272c1cbe6b878170218c37f3be7c95e0b Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Fri, 18 Aug 2023 01:13:25 +0000 Subject: [PATCH 2/4] updating DIRECTORY.md --- DIRECTORY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index d4a2bb48511a..e39a0674743a 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -710,6 +710,7 @@ * [2 Hidden Layers Neural Network](neural_network/2_hidden_layers_neural_network.py) * Activation Functions * [Exponential Linear Unit](neural_network/activation_functions/exponential_linear_unit.py) + * [Leaky Rectified Linear Unit](neural_network/activation_functions/leaky_rectified_linear_unit.py) * [Back Propagation Neural Network](neural_network/back_propagation_neural_network.py) * [Convolution Neural Network](neural_network/convolution_neural_network.py) * [Perceptron](neural_network/perceptron.py) From ce9a8e8484786823e36e4a616cff0531f8dae101 Mon Sep 17 00:00:00 2001 From: Tianyi Zheng <tianyizheng02@gmail.com> Date: Thu, 17 Aug 2023 18:16:16 -0700 Subject: [PATCH 3/4] Remove unused var in bucket_sort.py --- sorts/bucket_sort.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorts/bucket_sort.py b/sorts/bucket_sort.py index 8ae0e314446f..7e775928adbe 100644 --- a/sorts/bucket_sort.py +++ b/sorts/bucket_sort.py @@ -55,7 +55,7 @@ def bucket_sort(my_list: list, bucket_count: int = 10) -> list: if len(my_list) == 0 or bucket_count <= 0: return [] - min_value, max_value = min(my_list), max(my_list) + min_value = min(my_list) buckets: list[list] = [[] for _ in range(bucket_count)] for val in my_list: From 5ab1cccc399183ca7c5044b9418b443161236af8 Mon Sep 17 00:00:00 2001 From: Tianyi Zheng <tianyizheng02@gmail.com> Date: Thu, 17 Aug 2023 18:32:40 -0700 Subject: [PATCH 4/4] Fix list index in bucket_sort.py --- sorts/bucket_sort.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sorts/bucket_sort.py b/sorts/bucket_sort.py index 7e775928adbe..c016e9e26e73 100644 --- a/sorts/bucket_sort.py +++ b/sorts/bucket_sort.py @@ -55,11 +55,13 @@ def bucket_sort(my_list: list, bucket_count: int = 10) -> list: if len(my_list) == 0 or bucket_count <= 0: return [] - min_value = min(my_list) + min_value, max_value = min(my_list), max(my_list) + bucket_size = (max_value - min_value) / bucket_count buckets: list[list] = [[] for _ in range(bucket_count)] for val in my_list: - buckets[int(val - min_value)].append(val) + index = min(int((val - min_value) / bucket_size), bucket_count - 1) + buckets[index].append(val) return [val for bucket in buckets for val in sorted(bucket)]