From 384b79adf865fae704d47d96265057af6cc43eef Mon Sep 17 00:00:00 2001 From: marina <138340846+bt3gl-cryptographer@users.noreply.github.com> Date: Wed, 2 Aug 2023 20:56:20 -0700 Subject: [PATCH] Create bucket_sort.py --- sorting/bucket_sort.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 sorting/bucket_sort.py diff --git a/sorting/bucket_sort.py b/sorting/bucket_sort.py new file mode 100644 index 0000000..980f496 --- /dev/null +++ b/sorting/bucket_sort.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + +def bucket_sort(list): + + buckets = [[] for _ in range(K)] + + shift = min(lst) + max_val = max(lst) - shift + bucket_size = max(1, max_val / K) + + for i, elem in enumerate(lst): + + index = (elem - shift) // bucket_size + + if index == K: + buckets[K - 1].append(elem) + else: + buckets[index].append(elem) + + for bucket in buckets: + bucket.sort() + + sorted_array = [] + for bucket in buckets: + sorted_array.extend(bucket) + + for i in range(len(lst)): + lst[i] = sorted_array[i]