From 1aaa2c78b74a19faca2daabd4a7c92ab30795612 Mon Sep 17 00:00:00 2001 From: sjain Date: Mon, 21 Oct 2019 12:37:27 +0530 Subject: [PATCH] bucket sort added --- sorting/bucketSort.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sorting/bucketSort.py diff --git a/sorting/bucketSort.py b/sorting/bucketSort.py new file mode 100644 index 0000000..7e0ec64 --- /dev/null +++ b/sorting/bucketSort.py @@ -0,0 +1,35 @@ +def bucket_sort(alist): + largest = max(alist) + length = len(alist) + size = largest/length + + buckets = [[] for _ in range(length)] + for i in range(length): + j = int(alist[i]/size) + if j != length: + buckets[j].append(alist[i]) + else: + buckets[length - 1].append(alist[i]) + + for i in range(length): + insertion_sort(buckets[i]) + + result = [] + for i in range(length): + result = result + buckets[i] + + return result + +def insertion_sort(alist): + for i in range(1, len(alist)): + temp = alist[i] + j = i - 1 + while (j >= 0 and temp < alist[j]): + alist[j + 1] = alist[j] + j = j - 1 + alist[j + 1] = temp + + + +alist = [54,26,93,17,77,31,44,55,20] +print(bucket_sort(alist)) \ No newline at end of file