由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一个题,不太容易,要O(n)
相关主题
2次电面后被amazon据了很久前,面亚麻时被出了个hard的
G家电面(已挂)一个算法题:Selecting median of three sorted arrays
一道小题求推荐学习recursive 算法的资料
median of an array of ints, 请问这题的经典回答是什么?谢谢问一道老题
求一下这题解法。一个NxN矩阵每行每列都sort好,如何排序?
Top K in N sorted array问个经典问题的improvement
为什么这题要用min heap?Sort numbers stored on different machines问一个时间复杂度的问题,数组里取k个最大数
TopK nearest points为啥用heap不用selection sort?自己设计的一道面试题
相关话题的讨论汇总
话题: selection话题: right话题: sort话题: element话题: left
进入JobHunting版参与讨论
1 (共1页)
l**h
发帖数: 893
1
从一堆没有排序的整数中找出最大的K个.
j*****y
发帖数: 1071
2
selection sort

【在 l**h 的大作中提到】
: 从一堆没有排序的整数中找出最大的K个.
p*****p
发帖数: 379
3
这是O(nk)的

【在 j*****y 的大作中提到】
: selection sort
j*****y
发帖数: 1071
4
select the (n-k)th element in the array, which is linear

【在 p*****p 的大作中提到】
: 这是O(nk)的
m*****1
发帖数: 147
5
这样行不行,开一个数组,长度为k,每次把这堆数扫一遍,取出最大的,放到数组中
,然后置为负,然后又继续扫,又取出当前最大的,直到找到了k个,这样复杂度是O(
KN),从数量级上还是O(n)。。。。
s****0
发帖数: 117
6
no way
if it is doable, the worst case of qicksort will be O(nlogn).

【在 l**h 的大作中提到】
: 从一堆没有排序的整数中找出最大的K个.
p*****p
发帖数: 379
7
The array is not sorted so not possible to get that in linear time
qsort can do that in amortized O(n) but not worst case

【在 j*****y 的大作中提到】
: select the (n-k)th element in the array, which is linear
j*****y
发帖数: 1071
8
It can. just google "selection sort" :)

【在 p*****p 的大作中提到】
: The array is not sorted so not possible to get that in linear time
: qsort can do that in amortized O(n) but not worst case

r*******n
发帖数: 3020
9
可以,
result = []
1 left, right = partition // the elements in right > that of left
2 if sizeof(right) > k
drop the left, recursively call on the right.
else if sizeof(right) < k
k = k - sizeof(right)
append the right to the result.
recursively call on the left.
else
append the right to the result.
the end.


【在 s****0 的大作中提到】
: no way
: if it is doable, the worst case of qicksort will be O(nlogn).

p*****p
发帖数: 379
10
that takes n + n - 1 + ... + n - k - 1 which is O(nk)

【在 j*****y 的大作中提到】
: It can. just google "selection sort" :)
相关主题
Top K in N sorted array很久前,面亚麻时被出了个hard的
为什么这题要用min heap?Sort numbers stored on different machines一个算法题:Selecting median of three sorted arrays
TopK nearest points为啥用heap不用selection sort?求推荐学习recursive 算法的资料
进入JobHunting版参与讨论
l*******b
发帖数: 2586
S******t
发帖数: 151
12
First select the $K+1$-th element using the selection algorithm. This is $O(
n)$. And then use that element to partition. That's $O(n)$ as well.
j*****y
发帖数: 1071
13
不是这么做的。
先找到第 n-k大的数 r,这个时间代价是 linear,
这个 是 call selection_sort(n, n-k)
然后扫描整个数组,比 r大的就留下, 这样就得到 k个最大的数了

【在 p*****p 的大作中提到】
: that takes n + n - 1 + ... + n - k - 1 which is O(nk)
p*****2
发帖数: 21240
14
这题还用讨论吗?上边好几个都说了。
s****0
发帖数: 117
15
真丢人。把median of medians给忘了。

【在 s****0 的大作中提到】
: no way
: if it is doable, the worst case of qicksort will be O(nlogn).

d**********x
发帖数: 4083
16
median of medians并不实用,常数过大无比缓慢,只是作为一种理论上的kth element
可被worst-case O(n)找到的实例。
quick selection的worst case是O(n^2),但是ramdomized之后效果很好,唯一问题是
它不是online算法,而且还要改原数组
所以在特定情形下heap也很好用,如果k相对于n是个很小的数

【在 s****0 的大作中提到】
: 真丢人。把median of medians给忘了。
b****g
发帖数: 192
17
Top k的问题是不是一般两种解法?
1.用heap sort的思路建一个大小为k的min heap
2.用selection rank,思路就类似quick sort
请问对吗?

【在 p*****2 的大作中提到】
: 这题还用讨论吗?上边好几个都说了。
l**h
发帖数: 893
18
according to wiki, selection sort is o(n^2).
If you only sort k element, it's still o(n*k), why you think its linear?

【在 j*****y 的大作中提到】
: It can. just google "selection sort" :)
S******t
发帖数: 151
19
$k$ is a constant.

【在 l**h 的大作中提到】
: according to wiki, selection sort is o(n^2).
: If you only sort k element, it's still o(n*k), why you think its linear?

d**********x
发帖数: 4083
20
说中文吧。。。
他其实是想说quick selection,而不是selection sort

【在 l**h 的大作中提到】
: according to wiki, selection sort is o(n^2).
: If you only sort k element, it's still o(n*k), why you think its linear?

相关主题
问一道老题问一个时间复杂度的问题,数组里取k个最大数
一个NxN矩阵每行每列都sort好,如何排序?自己设计的一道面试题
问个经典问题的improvement一个stack怎么sort
进入JobHunting版参与讨论
d**********x
发帖数: 4083
21
有区别么。。

w********p
发帖数: 948
22
没有大的区别,很传统的题啊。
但是做题前,总是要清楚题,才好把清晰完整的思路给出来。

【在 d**********x 的大作中提到】
: 有区别么。。
:
: 数

d**********x
发帖数: 4083
23
思路也是一样的。。。

【在 w********p 的大作中提到】
: 没有大的区别,很传统的题啊。
: 但是做题前,总是要清楚题,才好把清晰完整的思路给出来。

A****e
发帖数: 310
24
我认为是这样的

【在 b****g 的大作中提到】
: Top k的问题是不是一般两种解法?
: 1.用heap sort的思路建一个大小为k的min heap
: 2.用selection rank,思路就类似quick sort
: 请问对吗?

r****o
发帖数: 1950
25
我觉得一般面试就用selection sort的办法,复杂度O(nk),
当然这题可以用类似quick sort的方法,但是现场写出bug-free的代码基本上很难吧。

【在 l**h 的大作中提到】
: 从一堆没有排序的整数中找出最大的K个.
w********p
发帖数: 948
26
我个人认为我在解题前需要完全了解题目的意思。
就这样。

【在 d**********x 的大作中提到】
: 思路也是一样的。。。
w********p
发帖数: 948
27
我小小声的认为,这题一定要练习到用类似quick sort的二分法,然后bug-free的写出
来。
这题是基本题。比quicksort 简单。

【在 r****o 的大作中提到】
: 我觉得一般面试就用selection sort的办法,复杂度O(nk),
: 当然这题可以用类似quick sort的方法,但是现场写出bug-free的代码基本上很难吧。

d**********x
发帖数: 4083
28
难度基本一样
就一个partition可能会写错

吧。

【在 w********p 的大作中提到】
: 我小小声的认为,这题一定要练习到用类似quick sort的二分法,然后bug-free的写出
: 来。
: 这题是基本题。比quicksort 简单。

h********3
发帖数: 2075
29
《算法导论》第九章。

【在 l**h 的大作中提到】
: 从一堆没有排序的整数中找出最大的K个.
l***z
发帖数: 9
30
可以用一个大小为k的heap,每次遇到大数插入heap,然后removeMin。
这样最后heap中是最大的k个数,O(nlogk)
相关主题
一道电面题G家电面(已挂)
问个算法题8一道小题
2次电面后被amazon据了median of an array of ints, 请问这题的经典回答是什么?谢谢
进入JobHunting版参与讨论
e***s
发帖数: 799
31
min-heap是正解吧?
1 (共1页)
进入JobHunting版参与讨论
相关主题
自己设计的一道面试题求一下这题解法。
一个stack怎么sortTop K in N sorted array
一道电面题为什么这题要用min heap?Sort numbers stored on different machines
问个算法题8TopK nearest points为啥用heap不用selection sort?
2次电面后被amazon据了很久前,面亚麻时被出了个hard的
G家电面(已挂)一个算法题:Selecting median of three sorted arrays
一道小题求推荐学习recursive 算法的资料
median of an array of ints, 请问这题的经典回答是什么?谢谢问一道老题
相关话题的讨论汇总
话题: selection话题: right话题: sort话题: element话题: left