|
|
- 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))
|