From f072f4100b6b3974585a966ab6bb25afdeeb5776 Mon Sep 17 00:00:00 2001 From: vns9 Date: Fri, 25 Sep 2020 08:26:54 +0530 Subject: [PATCH] Bucket sorting in Python (without libraries) --- sorting and basics/sorting.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sorting and basics/sorting.py b/sorting and basics/sorting.py index 9e19d4e..31f1880 100644 --- a/sorting and basics/sorting.py +++ b/sorting and basics/sorting.py @@ -87,6 +87,25 @@ def insertionsort(a): a[j] = item return a +def bucket_sort(input_list): + max_value = max(input_list) + size = max_value/len(input_list) + buckets_list= list() + for x in range(len(input_list)): + buckets_list.append([]) + for i in range(len(input_list)): + j = int (input_list[i] / size) + if j != len (input_list): + buckets_list[j].append(input_list[i]) + else: + buckets_list[len(input_list) - 1].append(input_list[i]) + for z in range(len(input_list)): + insertion_sort(buckets_list[z]) + final_output = list() + for x in range(len (input_list)): + final_output = final_output + buckets_list[x] + return final_output + if __name__ == "__main__": import doctest doctest.testmod(verbose=True)