元素唯一性问题

元素唯一性问题（）是計算複雜性理論中判断列表内所有元素是否唯一的问题。关于这一问题的研究已经完备，可以通过许多不同的计算模型解决。其中一种方法就是通过给列表排序，检验是否存在连续相等元素；也可以借由随机化算法将元素插入哈希表中，比较放在哈希表相同位置元素，从而在线性时间复杂度解决这一问题。通过将问题转化为查找问题可以最大程度优化算法的时间复杂度。

决策树的复杂度 
已知对于一组数字列表，其时间复杂度是O(n log n)，或言之其时间复杂度的界限由模型的线性对数所决定，而在决策树模型中数据不一定需要存入内存（插入哈希表中），只需要计算和比较运算树节点的代数值，这一解法又被称之为渐进最优算法。这一算法可以进一步优化为随机。

查找重复元素 
查找在在含有n项元素的多重集合（multiset）中查找出现超过n/k次的元素所需的时间复杂度为O(n log k)，而元素唯一性问题是前一问题在k=n时的一个特例，决策树是这种算法的理想解决方案。这种算法可以看成多数投票法（k=2时的特例）的一种归纳推演，两者在研究历史上关系相依。

上述算法仅仅依赖于检验识别元素，如果可以排序，那么就可以利用基于顺序统计量的搜索算法。比方说，当k=2时，查找中位数的时间复杂度最低，进而方便检测是否有多余n/2个中位数元素，这种算法的比较次数比顺序统计算法来的少。

相关条目

参考资料 

算法分析