基数排序
- 一种通过比较每个数字的位数来进行排序
- 时间复杂度 O(blog§*k)
- 空间复杂度 O(p*n)
- 稳定算法
代码
def Base(arr, size):
base = 1
while base <= size * 10:
tmp_arr = [[0] * size for rwo in range(10)]
for i in range(size):
index = (arr[i] // base) % 10
tmp_arr[index][i] = arr[i]
index = 0
for i in range(size):
for j in range(size):
if tmp_arr[i][j] != 0:
arr[index] = tmp_arr[i][j]
index += 1
base *= 10
print(arr)
if __name__ == '__main__':
array = [23, 16, 25, 39, 27, 12, 8, 45, 63]
Base(array, len(array))