基数排序(Radix Sort)
基数排序是一种非比较排序算法,适用于对整数或字符串进行排序。它的基本思想是:将整数按位数切割成不同的数字,然后从最低位到最高位依次进行排序。基数排序通常使用计数排序或桶排序作为子排序算法。
基数排序的步骤:
- 确定最大位数:找到数组中最大元素的位数。
- 按位排序:从最低位到最高位,依次对每一位进行排序。
- 合并结果:最终数组即为排序后的结果。
时间复杂度:
- 最坏情况:O(n * k),其中
n是数组长度,k是最大位数。 - 最好情况:O(n * k)
- 平均情况:O(n * k)
空间复杂度:
- O(n + k) —— 需要额外的空间来存储计数数组和临时数组。
Python 实现
def radix_sort(arr):
# 找到数组中的最大值,确定最大位数
max_val = max(arr)
exp = 1 # 从最低位开始
while max_val // exp > 0:
counting_sort_by_digit(arr, exp)
exp *= 10 # 移动到下一位
return arr
def counting_sort_by_digit(arr, exp):
n = len(arr)
output = [0]

最低0.47元/天 解锁文章
536

被折叠的 条评论
为什么被折叠?



