布尔排序(也称为计数排序)是一种线性时间复杂度的排序算法,适用于待排序元素取值范围较小的情况。下面是一个示例代码,展示了如何使用布尔排序对一个整数数组进行排序。
def booleanSort(arr):
# 获取数组中的最大值
max_val = max(arr)
# 创建一个长度为最大值加1的布尔数组
count = [False] * (max_val + 1)
# 遍历数组,将出现的元素对应位置的布尔值设为True
for num in arr:
count[num] = True
# 创建一个空数组,用于存储排序后的结果
sorted_arr = []
# 遍历布尔数组,将True对应的下标添加到排序数组中
for i in range(len(count)):
if count[i]:
sorted_arr.append(i)
return sorted_arr
# 测试
arr = [4, 2, 1, 3, 2, 4, 5]
sorted_arr = booleanSort(arr)
print(sorted_arr)
输出结果为:[1, 2, 3, 4, 5]