由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一个我onsite的题
相关主题
find median for k sorted arraysa[i] + b[j] = c[k] 的题有靠谱的答案不?
求一下这题解法。一个特别的inplace merge two sorted arrays
关于index的问题re: 面试归来,上面经回馈各位战友
Median of Two Sorted Arrays哪里有讲k-way merge的?
一个小公司面经请教一下external sorting的问题
问个面试题刷题刷到没自信了
merge k个数组怎样的方法好?find max in shifted sorted array
LinkIn面经请教一道题目
相关话题的讨论汇总
话题: 二分话题: onsite话题: array话题: jump话题: merge
进入JobHunting版参与讨论
1 (共1页)
x*********w
发帖数: 533
1
Merge两个sorted array, 长度分别为m和n, array的特征如下:
a => 1,2,3,4 ...1001, 9876283, 9876285, 9876293, 9876297, ...9993456, ....
b => 7,10,13,14,... , 8873, 8875, 5678999871, 5678999873, 5678999874 ....
很显然sorted array会有一个big jump. 在发现一个big jump的时候对另一个数组不需
要再一个个的挪,可以做二分。(j到m-1做二分)
也可以这么做,看j+1, j+2, j+4, j+8, j+16 ..., 找到j + 2^x使得b[j+2^x] > a[i]
, 然后再在b[j .. j+2^x]里做二分找到刚好大于a[i]的数。
问题是:
这里的x取什么值最好,一定是2吗?
什么情况下,比如取3比2要更优?
l*****a
发帖数: 14598
2
报厂名

i]

【在 x*********w 的大作中提到】
: Merge两个sorted array, 长度分别为m和n, array的特征如下:
: a => 1,2,3,4 ...1001, 9876283, 9876285, 9876293, 9876297, ...9993456, ....
: b => 7,10,13,14,... , 8873, 8875, 5678999871, 5678999873, 5678999874 ....
: 很显然sorted array会有一个big jump. 在发现一个big jump的时候对另一个数组不需
: 要再一个个的挪,可以做二分。(j到m-1做二分)
: 也可以这么做,看j+1, j+2, j+4, j+8, j+16 ..., 找到j + 2^x使得b[j+2^x] > a[i]
: , 然后再在b[j .. j+2^x]里做二分找到刚好大于a[i]的数。
: 问题是:
: 这里的x取什么值最好,一定是2吗?
: 什么情况下,比如取3比2要更优?

x*********w
发帖数: 533
3



【在 l*****a 的大作中提到】
: 报厂名
:
: i]

s*****1
发帖数: 134
4
bucket sort?
x*********w
发帖数: 533
5

啥意思,
以朋友说是固定跳sqrt(n)步,为什么?

【在 s*****1 的大作中提到】
: bucket sort?
j******2
发帖数: 362
6
这题有结论了吗?
g**u
发帖数: 504
7
can we find these jump points efficiently, like log(n)?

i]

【在 x*********w 的大作中提到】
: Merge两个sorted array, 长度分别为m和n, array的特征如下:
: a => 1,2,3,4 ...1001, 9876283, 9876285, 9876293, 9876297, ...9993456, ....
: b => 7,10,13,14,... , 8873, 8875, 5678999871, 5678999873, 5678999874 ....
: 很显然sorted array会有一个big jump. 在发现一个big jump的时候对另一个数组不需
: 要再一个个的挪,可以做二分。(j到m-1做二分)
: 也可以这么做,看j+1, j+2, j+4, j+8, j+16 ..., 找到j + 2^x使得b[j+2^x] > a[i]
: , 然后再在b[j .. j+2^x]里做二分找到刚好大于a[i]的数。
: 问题是:
: 这里的x取什么值最好,一定是2吗?
: 什么情况下,比如取3比2要更优?

y****n
发帖数: 743
8
如果没理解错,既然是合并数组,那么每个元素都会被读取。
那么复杂度O(m+n)是跑不掉的。
除非想用memory copy拷贝某段数组数据,但这样做在某些情况可能得不偿失。
j******2
发帖数: 362
9
我也是这么理解的。所以其实跟一般的merge并无二致。那如何利用这个数组的特点呢?

【在 y****n 的大作中提到】
: 如果没理解错,既然是合并数组,那么每个元素都会被读取。
: 那么复杂度O(m+n)是跑不掉的。
: 除非想用memory copy拷贝某段数组数据,但这样做在某些情况可能得不偿失。

z**l
发帖数: 292
10
This is called "postings merge with skip pointer" in IR.

i]

【在 x*********w 的大作中提到】
: Merge两个sorted array, 长度分别为m和n, array的特征如下:
: a => 1,2,3,4 ...1001, 9876283, 9876285, 9876293, 9876297, ...9993456, ....
: b => 7,10,13,14,... , 8873, 8875, 5678999871, 5678999873, 5678999874 ....
: 很显然sorted array会有一个big jump. 在发现一个big jump的时候对另一个数组不需
: 要再一个个的挪,可以做二分。(j到m-1做二分)
: 也可以这么做,看j+1, j+2, j+4, j+8, j+16 ..., 找到j + 2^x使得b[j+2^x] > a[i]
: , 然后再在b[j .. j+2^x]里做二分找到刚好大于a[i]的数。
: 问题是:
: 这里的x取什么值最好,一定是2吗?
: 什么情况下,比如取3比2要更优?

c********t
发帖数: 5706
11
~然后再在b[j .. j+2^x]里做二分找到刚好大于a[i]的数
应该是b[j+2^(x-1), j+2^x]里做二分吧。
这里的x取什么值最好,那很难说了,感觉和a[i] b[j]value相关,与j,m大小也相关。
甚至先x=10,找到 b[j+10^(x-1), j+10^x],再在这个区间 x=5来缩小范围也可以吧。
太复杂了。

i]

【在 x*********w 的大作中提到】
: Merge两个sorted array, 长度分别为m和n, array的特征如下:
: a => 1,2,3,4 ...1001, 9876283, 9876285, 9876293, 9876297, ...9993456, ....
: b => 7,10,13,14,... , 8873, 8875, 5678999871, 5678999873, 5678999874 ....
: 很显然sorted array会有一个big jump. 在发现一个big jump的时候对另一个数组不需
: 要再一个个的挪,可以做二分。(j到m-1做二分)
: 也可以这么做,看j+1, j+2, j+4, j+8, j+16 ..., 找到j + 2^x使得b[j+2^x] > a[i]
: , 然后再在b[j .. j+2^x]里做二分找到刚好大于a[i]的数。
: 问题是:
: 这里的x取什么值最好,一定是2吗?
: 什么情况下,比如取3比2要更优?

c********t
发帖数: 5706
12
读取时间一样。应该是可以减少比较次数和时间

【在 y****n 的大作中提到】
: 如果没理解错,既然是合并数组,那么每个元素都会被读取。
: 那么复杂度O(m+n)是跑不掉的。
: 除非想用memory copy拷贝某段数组数据,但这样做在某些情况可能得不偿失。

1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一道题目一个小公司面经
找2个sorted array中的第K小的元素,有O(lgn)方法吗?问个面试题
amazon tel interviewmerge k个数组怎样的方法好?
刚和Amazon电话面试完LinkIn面经
find median for k sorted arraysa[i] + b[j] = c[k] 的题有靠谱的答案不?
求一下这题解法。一个特别的inplace merge two sorted arrays
关于index的问题re: 面试归来,上面经回馈各位战友
Median of Two Sorted Arrays哪里有讲k-way merge的?
相关话题的讨论汇总
话题: 二分话题: onsite话题: array话题: jump话题: merge