标签: computer-science

B树与哈希表

在MySQL中,索引类型是b树,并且访问b树中的元素是以对数分摊的时间O(log(n)).

另一方面,访问哈希表中的元素O(1).

为什么不使用哈希表而不是b树来访问数据库中的数据?

mysql complexity-theory computer-science b-tree

89
推荐指数
6
解决办法
5万
查看次数

函数指针,闭包和Lambda

我刚才正在学习函数指针,当我正在阅读关于这个主题的K&R章节时,第一件让我感到惊讶的是,"嘿,这有点像一个闭包." 我知道这种假设在某种程度上是根本错误的,在网上搜索后我没有找到任何对这种比较的分析.

那么为什么C风格的函数指针与闭包或lambdas根本不同呢?据我所知,它与函数指针仍然指向已定义(命名)函数的事实有关,这与匿名定义函数的做法相反.

为什么将函数传递给在第二种情况下看起来更强大的函数,它是未命名的,而不是第一种传递的正常日常函数?

请告诉我如何以及为什么我错误地比较这两者.

谢谢.

c lisp lambda computer-science closures

84
推荐指数
4
解决办法
3万
查看次数

何时使用预购,后序和有序二进制搜索树遍历策略

我最近意识到,虽然在我的生活中使用了BST,但我甚至都没有考虑过使用任何东西而是使用Inorder遍历(虽然我知道并且知道调整程序使用前/后顺序遍历是多么容易).

在意识到这一点之后,我拿出了一些旧的数据结构教科书,并寻找了预订和后序遍历的有用性背后的推理 - 但他们并没有说太多.

什么时候实际使用预订/后期订单的一些例子?什么时候比按顺序更有意义?

computer-science binary-tree data-structures preorder

83
推荐指数
4
解决办法
6万
查看次数

检测树结构之间的差异

这更像是一个CS问题,但却是一个有趣的问题:

假设我们有2个树结构,其中重组的节点或多或少相同.你怎么找到的

  1. 任何
  2. 在某种意义上是最小的

操作顺序

  • MOVE(A, B) - 在节点B下移动节点A(使用整个子树)
  • INSERT(N, B)- 在节点B下插入节点N.
  • DELETE (A) - 删除节点A(使用整个子树)

将一棵树转换为另一棵树.

显然可能存在这样的转变是不可能的情况,小孩子是带有孩子B的根A到带有孩子A的根B等等.在这种情况下,算法将简单地传递" 不可能 " 的结果.

更为壮观的版本是网络的概括,即当我们假设一个节点可以在树中多次出现(实际上有多个"父")时,禁止循环.

免责声明:这不是一个功课,实际上它来自一个真正的业务问题,我发现很有趣,想知道是否有人可能知道一个解决方案.

algorithm tree comparison diff computer-science

72
推荐指数
4
解决办法
3万
查看次数

了解lambda演算有多大帮助?

对于所有了解lambda演算的人:在编程方面它给你带来了什么好处?你会建议人们学习吗?

math computer-science functional-programming lambda-calculus

71
推荐指数
7
解决办法
2万
查看次数

为什么二进制而不是三元计算?

是不是三个状态对象能够持有更多信息并处理更大的价值?我知道处理器目前使用大量的XOR门网,需要重新加工.

由于我们处于64位(我们可以表示2 ^ 63种可能的状态),因此计算等效的三元生成可以支持30多个十位位数(3 ^ 63-2 ^ 63).

我想像检测+1和0之间的电位差一样容易,因为它介于-1和0之间.

硬件,功耗或芯片密度的某些复杂性会抵消存储和计算能力的任何增益吗?

computer-science ternary-representation

71
推荐指数
7
解决办法
5万
查看次数

解释Vinay Deolalikar证明P!= NP的证据

最近在惠普实验室的Vinay Deolalikar周围发表了一篇论文,声称已证明P!= NP.

有人可以解释一下这个证明对我们这个数学上不那么倾向的人有用吗?

math complexity-theory computer-science proof p-np

67
推荐指数
4
解决办法
2万
查看次数

数学计算机科学

我已经阅读了关于这个主题的几个答案,但我仍然有疑问......有很多数学课程,我不知道哪一个先学习.每个计算机科学家应该选择哪些数学课?什么课应该是第一个,为什么?

math computer-science

65
推荐指数
3
解决办法
7万
查看次数

什么是熵的计算机科学定义?

我最近在我的大学开设了数据压缩课程.但是,我发现使用术语"熵",因为它适用于计算机科学而不是模棱两可.据我所知,它大致转化为系统或结构的"随机性".

计算机科学"熵"的正确定义是什么?

computer-science entropy data-compression information-theory

63
推荐指数
7
解决办法
5万
查看次数

图灵机与冯·诺伊曼机器

背景

冯·诺依曼体系结构描述了指令和数据被存储在存储器中所存储的程序的计算机和机的工作原理,通过改变其内部状态,即,一个指令在某些数据进行操作,并修改数据.因此,系统中存在状态.

图灵机体系结构的工作原理是在磁带上操纵符号.即存在具有无限数量的槽的带,并且在任何一个时间点,图灵机都在特定的槽中.根据在该插槽读取的符号,机器可以更改符号并移动到不同的插槽.所有这些都是确定性的.


问题

  1. 这两个模型之间有什么关系吗?冯·诺伊曼模型是基于图灵模型还是受其启发?

  2. 我们可以说图灵模型是Von Newman模型的超集吗?

  3. 功能编程是否适合图灵模型?如果是这样,怎么样?我认为功能编程并不适合Von Neuman模型.

computer-science cpu-architecture turing-machines von-neumann

60
推荐指数
3
解决办法
2万
查看次数