Redian新闻
>
Sony A850 officially discontinued
avatar
Sony A850 officially discontinued# PhotoGear - 摄影器材
x*w
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要更优?
avatar
l*a
3
报厂名

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要更优?

avatar
x*w
5



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

avatar
i*f
6
假的?

【在 q*z 的大作中提到】
: ranma无忌挖了个坑,你又在这里挖
avatar
s*1
7
bucket sort?
avatar
t*a
8
是不是A850口碑比A900好?
avatar
x*w
9

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

【在 s*****1 的大作中提到】
: bucket sort?
avatar
j*2
11
这题有结论了吗?
avatar
d*0
12
why?
avatar
g*u
13
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要更优?

avatar
y*n
15
如果没理解错,既然是合并数组,那么每个元素都会被读取。
那么复杂度O(m+n)是跑不掉的。
除非想用memory copy拷贝某段数组数据,但这样做在某些情况可能得不偿失。
avatar
c*t
16
PREVIOUS MODEL Model: DSLR-A850
This product is a previous model and could be no longer available at your
local dealer.

【在 z****6 的大作中提到】
: 没有吧?哪写的?
avatar
j*2
17
我也是这么理解的。所以其实跟一般的merge并无二致。那如何利用这个数组的特点呢?

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

avatar
z*l
18
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要更优?

avatar
c*t
19
~然后再在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要更优?

avatar
c*t
20
读取时间一样。应该是可以减少比较次数和时间

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

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。