Add new test for bucket sort algorithm in sorts/bucket_sort.py (#11605)
* Add new test for bucket sort algorithm in sorts/bucket_sort.py * Update fractional_knapsack.py * Update matrix_class.py * Update bucket_sort.py * Update bucket_sort.py --------- Co-authored-by: Maxim Smolskiy <mithridatus@mail.ru>
This commit is contained in:
@@ -51,12 +51,35 @@ def bucket_sort(my_list: list, bucket_count: int = 10) -> list:
|
||||
>>> collection = random.sample(range(-50, 50), 50)
|
||||
>>> bucket_sort(collection) == sorted(collection)
|
||||
True
|
||||
>>> data = [1, 2, 2, 1, 1, 3]
|
||||
>>> bucket_sort(data) == sorted(data)
|
||||
True
|
||||
>>> data = [5, 5, 5, 5, 5]
|
||||
>>> bucket_sort(data) == sorted(data)
|
||||
True
|
||||
>>> data = [1000, -1000, 500, -500, 0]
|
||||
>>> bucket_sort(data) == sorted(data)
|
||||
True
|
||||
>>> data = [5.5, 2.2, -1.1, 3.3, 0.0]
|
||||
>>> bucket_sort(data) == sorted(data)
|
||||
True
|
||||
>>> bucket_sort([1]) == [1]
|
||||
True
|
||||
>>> data = [-1.1, -1.5, -3.4, 2.5, 3.6, -3.3]
|
||||
>>> bucket_sort(data) == sorted(data)
|
||||
True
|
||||
>>> data = [9, 2, 7, 1, 5]
|
||||
>>> bucket_sort(data) == sorted(data)
|
||||
True
|
||||
"""
|
||||
|
||||
if len(my_list) == 0 or bucket_count <= 0:
|
||||
return []
|
||||
|
||||
min_value, max_value = min(my_list), max(my_list)
|
||||
if min_value == max_value:
|
||||
return my_list
|
||||
|
||||
bucket_size = (max_value - min_value) / bucket_count
|
||||
buckets: list[list] = [[] for _ in range(bucket_count)]
|
||||
|
||||
@@ -73,3 +96,6 @@ if __name__ == "__main__":
|
||||
testmod()
|
||||
assert bucket_sort([4, 5, 3, 2, 1]) == [1, 2, 3, 4, 5]
|
||||
assert bucket_sort([0, 1, -10, 15, 2, -2]) == [-10, -2, 0, 1, 2, 15]
|
||||
assert bucket_sort([1.1, 1.2, -1.2, 0, 2.4]) == [-1.2, 0, 1.1, 1.2, 2.4]
|
||||
assert bucket_sort([5, 5, 5, 5, 5]) == [5, 5, 5, 5, 5]
|
||||
assert bucket_sort([-5, -1, -6, -2]) == [-6, -5, -2, -1]
|
||||
|
||||
Reference in New Issue
Block a user