gpt4 book ai didi

c++ - [仅等于运算符]在集合中查找重复元素并将它们分组的快速算法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:10 30 4
gpt4 key购买 nike

假设我们有一个元素集合,而这些元素只有等于运算符。所以,不可能对它们进行排序。

你怎么能挑出那些有重复的,并把它们放在每个比较最少的组中?最好用C++,但是算法比语言更重要。对于给定的示例 {E1,E2,E3,E4,E4,E2,E6,E4,E3},我希望提取出 {E2,E2}、{E3、E3}、{E4、E4、E4}。你会选择什么数据结构和算法?

编辑

我的场景,如果二进制数据 1 等于二进制数据 2,我们可以说这两个元素相同。但是,只有 =!= 是合乎逻辑的

element 1:

4 0 obj
<< /Type /Pages /Kids 5 0 R /Count 1 >>
stream
.....binary data 1....
endstream
endobj

element 2:

5 0 obj
<< /Type /Pages /Kids 5 0 R /Count 1 >>
stream
.....binary data 2....
endstream
endobj

最佳答案

只要找到满足P(a,a)==false, P(a,b) && P( b,a)==falseP(a,b) && P(b,c) 表示 P(a,c) !P(a,b) && !P(b,a) 表示 a == b。 Less-then 满足此属性,因此 greater-then。但它们远非唯一的可能性。

您现在可以按谓词 P 对您的集合进行排序,所有相等的元素将相邻。在您的情况下,定义 P(E1,E2)=true, P(E2,E3)=true 等。

关于c++ - [仅等于运算符]在集合中查找重复元素并将它们分组的快速算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17740402/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com