排序算法,可以将每个元素进行


39

是否存在不减少到分类网络的已知比较分类算法,使得每个元素被比较次?O(logn)

据我所知,在每个元素上使用比较进行排序的唯一方法是为n个输入构建一个AKS分类网络,然后在分类网络上运行输入。O(logn)n

AKS不容易实现,并且具有不切实际的常数,因此有寻找其他算法的动机。

用一种算法每件比较,其似乎不意味着排序网络呈现在这里。(iirc,这是由Rob Johnson在Stony Brook的算法研讨会上首次提出的)。O(log2n)


2
我不明白这个问题:许多顺序算法似乎都符合您的要求。例如,合并排序是一种经典的排序算法,每个元素进行的比较不超过比较。也许您在问并行排序算法?logn
杰里米

4
@Jeremy:如果合并两个列表,b 1b Ñ,则最终可能会比较一个1针对每个b 1,即b n,即每一个元素的Ω n )个比较。这只是“合并”的一步。当然平均(a1,...,an)(b1,...,bn)a1b1,...,bnΩ(n)比较次数一定很小,但是问题是最坏情况下的复杂性。
Jukka Suomela 2011年

6
我相信那是可能的。分类网络是数据遗忘的,并且具有预定的比较方式,但是分类算法可能能够根据数据在不同的操作集之间进行选择。一个可以修改合并排序到具有算法的每个元素进行比较,并且似乎没有暗示分拣网络reddit.com/comments/9jqsi/...O(log2n)
朝旭

1
Jukka:谢谢,我明白你的意思。但这只是在使用朴素合并时:使用双重搜索放置每个元素可以将b 1b n合并,在最坏的情况下,仍然是n个比较,但最多每个元素进行lg n个比较,从而得出Chao暗示的合并排序版本。(a1,,an)(b1,,bn)nlgn
杰里米

2
现在有一种新的相关(但也更容易)问题:cstheory.stackexchange.com/questions/8073/...
尤卡Suomela

Answers:


17

在与Michael T. Goodrich讨论之后,似乎Cole的EREW PRAM并行排序算法就可以完成工作。看到

  • 理查德·科尔(Richard Cole):“ 并行合并排序 ”。SIAM J.计算。17(4):770-785(1988)。

O(logn)O(1)

该算法对并行指针机器的扩展在


我们想知道你是谁!:D
Tayfun Pay

@someone是Sergio Cabello
某人

O(logn)O(logn)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.