📅  最后修改于: 2023-12-03 15:22:26.648000             🧑  作者: Mango
计数排序是一种非比较排序算法,适用于数组中元素取值范围不大,且数字取值范围已知的情况下。本文将介绍如何使用计数排序算法在数组中查找值为 1 到 N 的重复项。
count[]
,长度为 N,其中 count[i]
表示元素值为 i 的个数。count[]
数组对应的位置上。count[]
,如果 count[i]
的值大于 1,则说明元素值为 i 的元素在数组中存在重复,输出其索引即可。下面是使用 Python 实现计数排序查找值为 1 到 N 的重复项的代码:
def find_duplicates(arr):
n = len(arr)
count = [0] * (n + 1)
for i in range(n):
count[arr[i]] += 1
duplicates = []
for i in range(1, n + 1):
if count[i] > 1:
duplicates.append(i)
return duplicates
arr = [1, 2, 3, 4, 5, 6, 3, 7, 8, 9, 7]
duplicates = find_duplicates(arr)
print(duplicates) # [3, 7]
上述示例中,原数组中出现了值为 3 和 7 的重复元素,使用计数排序算法查找到了这些重复项,返回结果为 [3, 7]。