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