我读过 Grossman 和 Zeitman 发表的论文《阿克曼函数的本质迭代计算》,其中提出了一种优化阿克曼函数的算法。
\n我们知道阿克曼函数产生子序列 A(m,n) 的结果
\n\nm=0: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,... \
n m=1: 2, 3 , 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,...
\n m=2: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33,...
\n m=3: 5, 13, 29, 61, 125, 253, 509, 1021, …
假设我们有两个表(就像 SQL 表一样),其中一个表中的主键是另一个表中的外键。我应该编写一个简单的算法来模拟这两个表的连接。我考虑过迭代第一个表中主键列中的每个元素,并进行第二个循环,检查外键是否匹配,然后将其存储在外部数组或列表中。然而,这需要 O(N*M) 并且我需要找到更好的东西。教科书上有一个提示,它涉及到哈希,但是,我不确定这里如何实现哈希,或者如何让它变得更好?
编辑以添加示例:
Table Employees
|ID (Primary Key)| Name | Department|
|:---------------|:----:|----------:|
| 1 | Jack | IT |
| 2 | Amy | Finance |
Table Transactions
|Sold Product| Sold By(Foreign Key)| Sold To|
|:-----------|:-------------------:|-------:|
| TV | 1 | Mary |
| Radio | 1 | Bob |
| Mobile | 2 | Lisa |
Run Code Online (Sandbox Code Playgroud)
我想做的是编写一个使用散列连接这两个表的算法,而不是任何复杂的东西,只是一个关于如何做到这一点的简单想法。