找出有限集中元素的等级?

时间:2014-04-10 03:40:14

标签: algorithm

如果我们有一个有限集,并且有一个总订单,那怎么能知道集合中任意成员的等级?算法是基于排序算法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这两种类型的算法之间存在轻微但显着的差异,即找到任何特定项目的等级并对所有项目进行排序,并且差异反映在已知的计算复杂性界限中。尽管算法是相似的,但是已知在 O(n)时间内可以检索 n 排序的元素并且对所有元素进行排序是 O(n log n)。第二个界限是众所周知的,但第一个界限也在各种论文中讨论过。找到中位数被认为是找到对象排名/对应于给定排名的对象的最复杂的任务,因此通过搜索用于快速确定a的中位数的算法可以找到关于该主题的大多数论文。数据集。

这些算法的快速谷歌搜索(无耻)的第一个参考当然是维基百科:

http://en.wikipedia.org/wiki/Selection_algorithm

Quicksort算法可以通过丢弃数据的右侧或左侧,无论哪个不包含对象,都可以使用 O(n)的预期但不保证的复杂性。你试图确定等级,或者哪一个不包含你想要根据等级找到的对象的等级的元素的间隔。

更新:我能够找到本文所述的70年代称为PICK的已知算法:http://www.sciencedirect.com/science/article/pii/S0022000076800293