是否存在不减少到分类网络的已知比较分类算法,使得每个元素被比较次?
据我所知,在每个元素上使用比较进行排序的唯一方法是为n个输入构建一个AKS分类网络,然后在分类网络上运行输入。
AKS不容易实现,并且具有不切实际的常数,因此有寻找其他算法的动机。
用一种算法每件比较,其似乎不意味着排序网络呈现在这里。(iirc,这是由Rob Johnson在Stony Brook的算法研讨会上首次提出的)。
2
我不明白这个问题:许多顺序算法似乎都符合您的要求。例如,合并排序是一种经典的排序算法,每个元素进行的比较不超过比较。也许您在问并行排序算法?
—
杰里米
@Jeremy:如果合并两个列表,和(b 1,。。。,b Ñ),则最终可能会比较一个1针对每个b 1,。。。,即b n,即每一个元素的Ω (n )个比较。这只是“合并”的一步。当然平均比较次数一定很小,但是问题是最坏情况下的复杂性。
—
Jukka Suomela 2011年
我相信那是可能的。分类网络是数据遗忘的,并且具有预定的比较方式,但是分类算法可能能够根据数据在不同的操作集之间进行选择。一个可以修改合并排序到具有算法的每个元素进行比较,并且似乎没有暗示分拣网络reddit.com/comments/9jqsi/...
—
朝旭
Jukka:谢谢,我明白你的意思。但这只是在使用朴素合并时:使用双重搜索放置每个元素可以将与(b 1,… ,b n)合并,在最坏的情况下,仍然是n个比较,但最多每个元素进行lg n个比较,从而得出Chao暗示的合并排序版本。
—
杰里米
现在有一种新的相关(但也更容易)问题:cstheory.stackexchange.com/questions/8073/...
—
尤卡Suomela