常见的包含整数的块的排序算法有以下几种:
def bucket_sort(arr):
min_val = min(arr)
max_val = max(arr)
bucket_size = (max_val - min_val) // len(arr) + 1
bucket_count = (max_val - min_val) // bucket_size + 1
buckets = [[] for _ in range(bucket_count)]
for num in arr:
index = (num - min_val) // bucket_size
buckets[index].append(num)
sorted_arr = []
for bucket in buckets:
sorted_arr.extend(sorted(bucket))
return sorted_arr
def counting_sort(arr):
min_val = min(arr)
max_val = max(arr)
count = [0] * (max_val - min_val + 1)
for num in arr:
count[num - min_val] += 1
sorted_arr = []
for i in range(len(count)):
sorted_arr.extend([i + min_val] * count[i])
return sorted_arr
def radix_sort(arr):
max_val = max(arr)
digit = 1
while max_val // digit > 0:
count = [0] * 10
for num in arr:
count[num // digit % 10] += 1
for i in range(1, 10):
count[i] += count[i - 1]
sorted_arr = [0] * len(arr)
for num in reversed(arr):
index = count[num // digit % 10] - 1
sorted_arr[index] = num
count[num // digit % 10] -= 1
digit *= 10
arr = sorted_arr
return arr
这些算法都是经典的排序算法,可以根据具体的需求选择适合的算法进行排序。