Python Program to Implement Bucket Sorting

01. Example:

def bucketSorting(data):
  
    largest = max(data)
    length = len(data)
    size = largest / length

    buckets = [[] for _ in range(length)]
    for i in range(length):
        j = int(data[i] / size)
        if j != length:
            buckets[j].append(data[i])
        else:
            buckets[length - 1].append(data[i])

    for i in range(length):
        insertionSorting(buckets[i])

    result = []
    for i in range(length):
        result = result + buckets[i]

    return result


def insertionSorting(data):
    for i in range(1, len(data)):
        temp = data[i]
        j = i - 1
        while j >= 0 and temp < data[j]:
            data[j + 1] = data[j]
            j = j - 1
        data[j + 1] = temp


list01 = input("Enter The List Of (Non-negative) Numbers: ").split()
list01 = [int(x) for x in list01]
sortedList = bucketSorting(list01)
print("Sorted list: ", end="")
print(sortedList)

Output:

Enter the list of numbers: 320 420 140 500 185 60 200 80 10 100
Sorted list: [10, 60, 80, 100, 140, 185, 200, 320, 420, 500]

Leave a comment