由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道大数组shuffle的题
相关主题
A家一道题给定一个数组,找出3个数乘积最大。
菜鸟向大家请教个面试题前段时间整理的随机算法
ebay search组面经,估计要挂问个小算法
问两道数列题找2个sorted array中的第K小的元素,有O(lgn)方法吗?
一个给定的SORT好的数列,给一个和的值,求返回所有sum是这个数的任意连个数 的值讨论一题,去除有序数组的重复元素
请教个算法题讨论下面试题的难度分布?
能在这里问个算法题目么?问道数组元素连续相乘的名题
设计一个类似dropbox的web server一个N个数的int数组如何找到3个majority的数?
相关话题的讨论汇总
话题: shuffle话题: 文件话题: 数组话题: 元素话题: 个数
进入JobHunting版参与讨论
1 (共1页)
j******2
发帖数: 362
1
巨大的数组,不能放进内存的,怎么shuffle?
c****9
发帖数: 164
2
分段shuffle,然后shuffle id段
j******2
发帖数: 362
3
"shuffle id段",是说组与组shuffle吗?这样不均匀吧?

【在 c****9 的大作中提到】
: 分段shuffle,然后shuffle id段
j******2
发帖数: 362
4
大概可以这样:
分n段shuffle后存到n个小文件里,每个文件里m个数。然后generate m次shuffle了的1
到n,再m次读不同文件里的头,写回原大文件。
n******e
发帖数: 957
5
可不可以像external sort那样,每次shuffle一下每个chunk的头?然后下次shuffle下
个?
r*****s
发帖数: 74
6
有个想法,不知道对不对
假设共有n个数,要分到m个文件里面去。
A[] 有n个数需要shuffle
先随机分到m个文件中去
for int i : A
int d = random(1 to m)
put A[i] to file[d]
end
for i = 0: m - 1
shuffle file[i]
end
for i = 0:A.length - 1
int d = random(1 to m)
A[i] = pop the first number from file[m]
end
某个数分配到某一个文件的概率是1/m,它出现在这个文件某一个位置的概率是m/n,然
后大数列里某个位置抽到这个数的概率是大约是1/n?没具体算,拍脑袋乱算的概率……
b******7
发帖数: 92
7
不能先分段shuffle,再shuffle段id,这样不均匀。比如考虑数组为aaaaabcdef,若按
照这个思路,则无论怎么shuffle,这5个a都会在一起。
我的考虑和racolas一样,先将N个元素shuffle到M个文件中,再在M个文件内shuffle,
最后合并。
定义每个文件当前可容纳元素个数r[i],i=0...M-1,初始时所有r[i]都为N/M
从磁盘上读取N个元素,设当前为第k个元素,则根据rand[1,N-k]落入{r[0],r[0]+r[1]
,r[0]+r[1]+r[2],...}中的哪一个决定第k个元素写入哪个文件,并且相应的文件可容
纳个数减1。
1 (共1页)
进入JobHunting版参与讨论
相关主题
一个N个数的int数组如何找到3个majority的数?一个给定的SORT好的数列,给一个和的值,求返回所有sum是这个数的任意连个数 的值
请问如何binary search出数组中的重复元素请教个算法题
一个查找算法题能在这里问个算法题目么?
那道经典的求和问题设计一个类似dropbox的web server
A家一道题给定一个数组,找出3个数乘积最大。
菜鸟向大家请教个面试题前段时间整理的随机算法
ebay search组面经,估计要挂问个小算法
问两道数列题找2个sorted array中的第K小的元素,有O(lgn)方法吗?
相关话题的讨论汇总
话题: shuffle话题: 文件话题: 数组话题: 元素话题: 个数