Questions tagged «arrays»

创建后通常不能更改其大小的顺序随机访问数据结构。

3
在一个非常大的文件中查找出现次数最多的元素
我听说这个面试问题问了很多,我希望就好的答案给出一些意见:您有一个大于10 GB的大文件,并且您想找出哪个元素出现得最多,什么是好的方法去做这个? 在地图上进行迭代并保持跟踪可能不是一个好主意,因为您会占用大量内存,并且在条目进入时保持跟踪并不是最好的选择,因为提出此问题时文件通常已经存在。 我想到的其他想法包括拆分要迭代的文件并由多个线程处理,然后将这些结果组合在一起,但是映射的内存问题仍然存在。

1
预处理数组以计算切片中的元素(简化为RMQ?)
给定自然数的数组,其中为常数,我想用以下形式的查询回答:“在索引和索引之间的数组中出现了多少次 “?一种1个,... ,一ña1,…,ana_1,\ldots,a_n≤ ķ≤k\leq kķkkO (1 )O(1)O(1)米mm一世iiĴjj 数组应在线性时间内进行预处理。特别是我想知道范围最小查询是否减少。 如果并且您要查询间隔内的个数,则等效于RMQ 。这样我们就可以使用它了。由于SE的限制,我无法回答自己的问题。k = 1k=1k=1

2
在Hoare风格的正确性证明中如何处理数组
在围绕该问题的讨论中,Gilles正确地提到,使用数组的算法的任何正确性证明都必须证明没有越界的数组访问;根据运行时模型,这将导致运行时错误或访问非数组元素。 一种执行这种正确性证明的通用技术(至少在本科生中,可能在自动验证中)是使用Hoare逻辑。我不知道标准规则集包含与数组有关的任何内容;他们似乎仅限于单子变量。 我可以想象添加以下形式的公理 {0≤i<A.length∧P[A[i]/E]} A[i]:=E; {P}{0≤i<A.length∧P[A[i]/E]} A[i]:=E; {P}\qquad \displaystyle \frac{}{\{0 \leq i \lt A.\mathrm{length} \land {P[A[i]/E]} \}\ A[i] := E;\ \{P\}} 但是,我不清楚您将如何处理右侧的数组访问,即在某些语句x:= E中它是否是复杂表达式EEE的一部分。x:=Ex:=Ex := E 如何在Hoare逻辑中对数组访问进行建模,以便可以并且必须证明无效访问的存在以确保程序的正确性? 答案可能假设我们不允许数组元素比其他语句中使用或一些的一部分在,因为这不限制表现; 我们总是可以为临时变量分配所需的值,即写而不是。A[i]:=EA[i]:=EA[i] := EEEEx:=Ex:=Ex := Et:=A[i]; if(t>0)…t:=A[i]; if(t>0)…t := A[i];\ \mathtt{if} ( t > 0 ) \dotsif(A[i]>0)…if(A[i]>0)…\mathtt{if} ( A[i] > 0 )\dots

2
此重排/排序问题的名称?
给您一个长度为的数组。数组的每个元素都属于K类之一。你应该重新排列使用交换操作的最小数量,以使阵列的所有元素从相同类总是组合在一起,即它们形成连续的子阵列。 例如: nnnKKK 剩下三个有效的安排。[2,1,3,3,2,2]⟶[2,2,2,1,3,3], or[2,1,3,3,2,2]⟶[1,2,2,2,3,3], or[2,1,3,3,2,2]⟶[3,3,2,2,2,1].[2,1,3,3,2,2]⟶[2,2,2,1,3,3], or[2,1,3,3,2,2]⟶[1,2,2,2,3,3], or[2,1,3,3,2,2]⟶[3,3,2,2,2,1]. \begin{align*} &[2, 1, 3, 3, 2, 2] \longrightarrow [2, 2, 2, 1, 3, 3], \text{ or} \\ &[2, 1, 3, 3, 2, 2] \longrightarrow [1, 2, 2, 2, 3, 3], \text{ or} \\ &[2, 1, 3, 3, 2, 2] \longrightarrow [3, 3, …

3
有效地为数组中的每个元素查找较小元素的数量
我陷入了这个问题: 给定的阵列一个AA第一ñnn自然数随机地置换,阵列乙BB构造,使得 B (k )B(k)B(k)是从元件的数量甲(1 )A(1)A(1)至A (k − 1 )A(k−1)A(k-1)其是小于A (k )A(k)A(k)。 i)给定一个一个A,您可以在O (n )时间内找到吗? ii)给定B,您可以在O (n )时间内找到A吗?乙乙BO (n )O(ñ)O(n)乙乙B一个一个AO (n )Ø(ñ)O(n) 在此,B (1 )= 0乙(1个)=0B(1) = 0。对于一个具体的例子: ∣∣∣一个乙8040301个07321个966454∣∣∣|一个8431个72965乙000031个644|\begin{vmatrix} A & 8 & 4 & 3 & 1 & 7 & 2 & 9 & 6 & 5 \\ B …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.