由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - 请教一个top-k elements的算法问题
相关主题
算法疑问讨论一道onsite时候问的问题 (转载)
请教一个初级算法问题请教个简单的几何算法问题 (转载)
数学不好,问个问题问一个很初级的编程问题
求教,急请教一个网页编程问题
sorting问题求教。 (转载)[转载] help on Petri Nets
嵌入式系统用什么sorting算法比较好?About merging partially ordered plans
CLRS problem 7-4 tail recursion 求教。[合集] fuzzy clustering, soft clustering 区别?
请教一个搜索问题HTTP如何同时下载一个大文件的不同部分 (转载)
相关话题的讨论汇总
话题: 算法话题: 子集话题: 返回话题: 问题话题: object
进入CS版参与讨论
1 (共1页)
x*j
发帖数: 271
1
我这里说的经典的top-k element问题就是给一列没排好序的数,然后找到top-k个最大
的元素,用partition-base的算法average是 O(n), worst time O(n^2)
现在有这么一个问题,给一列object,和一个compare function, 在 O(1)的时间里对
pair a,b这个function会告诉3个结论,1 a b, 3 cannot tell
partial order 还是成立的 i.e. aa top-k的定义是如下,返回这列object的一个子集,使得对于任意一个没有返回的
object a,在返回的子集里至少有k个object b1, b2, ..., bk, s.t. a 同时 返回的子集的大小最小。
最后这个大小最小的条件是为了确保解唯一和有意义,否则的话总是可以返回所有的
object从而使得第一个条件成立。
我的问题是,我知道O(n^2)的算法是可以解的,不是非常naive但很trival。 我不知道
这个是不是就是lower bound
T*****9
发帖数: 2484
2
可以先sort,然后找第k个数。。。

k.

【在 x*j 的大作中提到】
: 我这里说的经典的top-k element问题就是给一列没排好序的数,然后找到top-k个最大
: 的元素,用partition-base的算法average是 O(n), worst time O(n^2)
: 现在有这么一个问题,给一列object,和一个compare function, 在 O(1)的时间里对
: pair a,b这个function会告诉3个结论,1 a b, 3 cannot tell
: partial order 还是成立的 i.e. aa: top-k的定义是如下,返回这列object的一个子集,使得对于任意一个没有返回的
: object a,在返回的子集里至少有k个object b1, b2, ..., bk, s.t. a: 同时 返回的子集的大小最小。
: 最后这个大小最小的条件是为了确保解唯一和有意义,否则的话总是可以返回所有的
: object从而使得第一个条件成立。

x*j
发帖数: 271
3
拜托,怎么sort? 只有o(n^2)的sort算法work
l******e
发帖数: 470
4
很多sort算法O(nlogn)
heap sort, merge sort。。。。
而且你的问题根本不用sort,有O(n)的算法,
http://crystal.uta.edu/~gdas/Courses/Courses/Spring2008/Algo2/L4.ppt

【在 x*j 的大作中提到】
: 拜托,怎么sort? 只有o(n^2)的sort算法work
c*****t
发帖数: 1879
5
我觉得 LZ 的问题写很奇怪。已经说了是 top-k 的问题,还扯上什么
子集的大小。

【在 l******e 的大作中提到】
: 很多sort算法O(nlogn)
: heap sort, merge sort。。。。
: 而且你的问题根本不用sort,有O(n)的算法,
: http://crystal.uta.edu/~gdas/Courses/Courses/Spring2008/Algo2/L4.ppt

x*j
发帖数: 271
6
我当然知道有O(n)的算法去找到k个最大的数,是quicksort的partition部分部分的一
个改版,在最开头我已经说的很清楚了。
这个问题的原因在于大于和小于的关系还在,但等于的关系没了。
举例说明 假设有3个单词a b c
a和b之间的 edit distance是 1 b和c之也是1,但a和c之间可能就是2,如果我们定义
edit distance是1或者0的都是不可分的,但二以上就有一个大小于关系,我们可以说a
这个topk的问题是要求返回一个子集,对于没有返回的任何元素,这个子集里都存在着
k个比它大的,但这个子集可以存在和它约等于的元素。因为对于元素a和b,如果a约等
于b,那么比a大的元素不一定比b大。所以这个返回的集合是可能包含不只k个元素的。
我很欢迎有帮助的讨论。对于问题不理解我也很愿意继续澄清,但是请注意的是这里没
有等于只有约等于,所以那些对于integer的排序的算法比如quicksort mergesort
heapsort,它们的复杂度不适用于这个问题。
我知道mergesort的复杂度是O(n^2logn)在这个
T*****9
发帖数: 2484
7
???没学过排序

【在 x*j 的大作中提到】
: 拜托,怎么sort? 只有o(n^2)的sort算法work
x*j
发帖数: 271
8
学过排序,不过,如果只有约等于没有等于的话,那比较的时候就没有办法按照等于的方
式比较了.
x*j
发帖数: 271
9
O(nlogn)的排序算法在这个题目里没办法work,因为只有partial order
c*****t
发帖数: 1879
10
你的标点符号得弄全,该有句号的时候得加上。我说读起来怎么这么费劲呢。
比如 cannot tell partial order ... 我看了半天才明白 cannot tell 后面
就是句号,partial order 已经是另外一句子的开头。
你这个 cannot tell 是指没法算出来,并不表明没有吧。也就是 a 可能小于
b 也可能大于 b 吧。否则你的问题没道理。

k.

【在 x*j 的大作中提到】
: 我这里说的经典的top-k element问题就是给一列没排好序的数,然后找到top-k个最大
: 的元素,用partition-base的算法average是 O(n), worst time O(n^2)
: 现在有这么一个问题,给一列object,和一个compare function, 在 O(1)的时间里对
: pair a,b这个function会告诉3个结论,1 a b, 3 cannot tell
: partial order 还是成立的 i.e. aa: top-k的定义是如下,返回这列object的一个子集,使得对于任意一个没有返回的
: object a,在返回的子集里至少有k个object b1, b2, ..., bk, s.t. a: 同时 返回的子集的大小最小。
: 最后这个大小最小的条件是为了确保解唯一和有意义,否则的话总是可以返回所有的
: object从而使得第一个条件成立。

c*******h
发帖数: 1096
11
你的问题是半序集排序,跟一般的排序不一样(因为没有全序),是一个比较难的问题
如果有全序,那比较容易,用线性的时间找到第k个元素,然后将数组扫一遍就得到k个
最大元了
如果只有半序,比较容易想到的是拓扑排序,然后想办法找到大于等于k个最大元。但
是不可避免的会碰到n^2的复杂度。
今年SODA有一篇paper是讲半序排序的,给了一个理论的lower bound;还给了一个算法
,分析了这个算法的复杂度。

k.

【在 x*j 的大作中提到】
: 我这里说的经典的top-k element问题就是给一列没排好序的数,然后找到top-k个最大
: 的元素,用partition-base的算法average是 O(n), worst time O(n^2)
: 现在有这么一个问题,给一列object,和一个compare function, 在 O(1)的时间里对
: pair a,b这个function会告诉3个结论,1 a b, 3 cannot tell
: partial order 还是成立的 i.e. aa: top-k的定义是如下,返回这列object的一个子集,使得对于任意一个没有返回的
: object a,在返回的子集里至少有k个object b1, b2, ..., bk, s.t. a: 同时 返回的子集的大小最小。
: 最后这个大小最小的条件是为了确保解唯一和有意义,否则的话总是可以返回所有的
: object从而使得第一个条件成立。

x*j
发帖数: 271
12
就是半序集排序啊,实际上我只找到了O(n^2)的算法, 没找到更低的了。
1 (共1页)
进入CS版参与讨论
相关主题
HTTP如何同时下载一个大文件的不同部分 (转载)sorting问题求教。 (转载)
怎么仿真 multi-agent系统的决策过程阿嵌入式系统用什么sorting算法比较好?
help on GAMS! THX!!CLRS problem 7-4 tail recursion 求教。
LaTex插图问题:怎么把word里的图转成eps?请教一个搜索问题
算法疑问讨论一道onsite时候问的问题 (转载)
请教一个初级算法问题请教个简单的几何算法问题 (转载)
数学不好,问个问题问一个很初级的编程问题
求教,急请教一个网页编程问题
相关话题的讨论汇总
话题: 算法话题: 子集话题: 返回话题: 问题话题: object