# 找完最大数的最高位 while max_data//bias > 0: key_dict={} for d in data: key = int(data[i] // bias) % 10# 依次取出个、十、百……位数 if key notin key_dict: key_dict[key] = [] key_dict[key].append(d) data = [] for key in range(10): if key in key_dict: data.extend(key_dict[key]) bias *= 10 return data
if __name__ == '__main__': data = [170, 45, 90, 802, 24, 2, 66] sorted_data = radix_sort(data.copy()) print("排序前:", data) print("排序后:", sorted_data)