Tag: 数据结构

为什么使用SQL数据库?

我不是很确定stackoverflow是一个这样一个普遍的问题的地方,但让我们试试看。 由于需要将应用程序数据存储在某个地方,我总是使用MySQL或sqlite,只是因为它总是这样做的。 由于整个世界似乎都在使用这些数据库(大部分是软件产品,框架等),像我这样的开始开发者开始考虑这是否是一个好的解决scheme是相当困难的。 好的,比方说,我们在应用程序中有一些面向对象的逻辑,而且对象是以某种方式相互关联的。 我们需要将这个逻辑映射到存储逻辑,因此数据库对象之间的关系也是必需的。 这导致我们使用关系型数据库,并且我确定 – 简单地说,我们的数据库表行有时需要引用其他表的行。 但为什么使用SQL语言与这样的数据库进行交互呢? SQL查询是一条文本消息。 我可以理解,这对于真正理解它的作用是很酷的,但是对于应用程序的一部分,在部署之后没有人看到使用文本表和列名是不是很愚蠢? 如果您必须从头开始编写数据存储,您将永远不会使用这种解决scheme。 就个人而言,我会使用一些“编译数据库查询”字节码,这将在客户端应用程序内汇编一次,并传递到数据库。 它肯定会通过id号命名表和冒号,而不是ASCIIstring。 在表结构变化的情况下,这些字节查询可以根据新的数据库模式重新编译,存储在XML或类似的东西。 我的想法有什么问题? 我有什么理由不自己写,而是使用SQL数据库呢? 编辑为了让我的问题更清楚。 大多数答案都声称SQL是一个文本查询,可以帮助开发人员更好地理解查询本身并更轻松地进行debugging。 就个人而言,我还没有看到人们用手写SQL查询一段时间。 包括我在内的每个人都在使用ORM。 这种情况下,我们build立了一个新的抽象层来隐藏SQL,导致思考我们是否需要SQL。 我将非常感谢,如果你可以给一些例子,其中SQL没有故意使用ORM,为什么。 EDIT2 SQL是人与数据库之间的接口。 问题是为什么我们必须使用它来进行应用程序/数据库交互? 我仍然要求人类编写/debuggingSQL的例子。

学习algorithm和数据结构基础知识

你可以推荐我一本书,或者(更好!)一个有许多难题和数据结构练习的网站吗? 我已经在回答项目欧拉问题,但这些问题是有趣的,但不常见的algorithm。 我甚至不用一棵简单的树。 也许有一个网站的练习如:嘿,你需要计算这个:…。 用树做。 现在用拉链做。 上传你的C(Haskell,Lisp,甚至是Pascal或Fortress去)解决scheme。 哦,你的解决scheme太慢了! 自学是非常困难的,那么你要学习非常普通的,基本的东西 。 我怎样才能帮助自己,而不参加课程或其他?

Python列表的底层数据结构是什么?

什么是用于实现Python的内置列表数据types的典型底层数据结构?

为什么在一个数据结构上有100个函数比10个数据结构上的10个函数更好呢?

我在很多地方看到过这个引用: “在一个数据结构上运行100个函数比在10个数据结构上运行10个函数要好”。 – 阿兰玻璃市 但我从来没有见过这解释为什么这应该是真实的。 是不是应该尝试从第一个数据结构中导出其他数据结构以避免重复数据? 我觉得我错过了一些上下文。

计算二叉search树中高度的最佳方法是什么? (平衡AVL树)

我正在寻找计算AVL树中节点平衡的最佳方法。 我以为我有它的工作,但经过一些沉重的插入/更新,我可以看到,它不工作正确(在所有)。 这是一个由两部分组成的问题,第一部分是如何计算子树的高度,我知道定义“节点的高度是从该节点到叶的最长下降path的长度“。 我明白了,但是我没能实施。 为了进一步使我迷惑,可以在维基百科树形高度上find这个引用。 “传统上,值-1对应于没有节点的子树,而零对应于具有一个节点的子树。 第二部分是在AVL树中获得子树的平衡因子,对于“得到L和R子树的高度并从L减去R ”这个概念我没有任何问题。 这是这样定义的: BALANCE = NODE[L][HEIGHT] – NODE[R][HEIGT] 在维基百科上阅读时,在描述插入AVL树的前几行中说: “如果平衡因子变成-1,0或1,那么树仍然是AVLforms,不需要旋转。 然后继续说: “如果平衡因子变成2或-2,那么以此节点为根的树就不平衡了,需要进行树的旋转,最多只需要一次或两次旋转来平衡树。 – 我没有任何困难抓住。 但是(是的,总有一个但是)。 这里是令人困惑的地方,文字指出“如果R的平衡因子是1,则意味着插入发生在该节点的(外部)右侧,并且需要左旋转” 。 但从理解的文字(正如我所引述的)所说,如果平衡因素在[-1, 1]之内[-1, 1]那么就不需要平衡了? 我感觉自己如此接近于理解这个概念,我已经把树轮旋转了下来,实现了一个普通的二叉search树,并且在抓AVL树的边缘,但是似乎缺less了那个重要的顿悟。 编辑:代码示例优于学术公式,因为我总是有更容易的时间抓住代码的东西,但任何帮助,非常感谢。 编辑:我希望我能标记所有的答案为“接受”,但对我来说,NIck的答案是第一个让我去“哈哈”。

纯function数据结构的好处是什么?

数据结构上有大量文本,数据结构代码库也有。 我明白,纯粹的function数据结构更容易推理。 然而,我很难理解在实际代码中使用纯函数式数据结构(使用函数式编程语言还是不使用函数式编程语言)在命令式对象上的真实世界优势。 有人可以提供一些真正的世界情况下,纯function数据结构有优势,为什么? 像我在编程语言中使用data_structure_name来做应用程序,因为它可以做某些事情 。 谢谢。 PS:我的意思是纯数据结构和持久数据结构不一样。 持久的数据结构是一个不会改变的数据结构? 另一方面,纯function数据结构是纯粹操作的数据结构。

谁能告诉我KD-tree和R-tree有什么区别

我看看KD-tree和R-tree的定义,看起来它们差不多。 谁能告诉我KD-tree和R-tree有什么区别? 谢谢

你会使用哪个数据结构:TreeMap或者HashMap? (JAVA)

说明| 一个Java程序,用于读取文本文件,并按字母顺序打印每个唯一字以及该字在文本中出现的次数。 程序应该声明一个Map<String, Integer>types的variables来存储单词和相应的出现频率。 哪个具体types呢? TreeMap<String, Number>或HashMap<String, Number> ? input应该被转换为小写。 一个单词不包含任何这些字符: \t\t\n]f.,!?:;\"()' 示例输出| Word Frequency a 1 and 5 appearances 1 as 1 . . . 备注| 我知道,我已经看到了用Perl几乎两行代码的优雅的解决scheme。 不过,我想看看它在Java中。 编辑:噢,这是有帮助的显示使用这些结构之一(在Java中)的实现。

PHP有内置的数据结构吗?

我正在查看PHP手册 ,而且我没有看到大多数语言所具有的数据结构部分,例如列表和集合。 我只是盲目或PHP没有这样的内置任何东西?

Haskell的代数数据types

我试图完全理解Haskell的所有概念。 与通用types类似的代数数据types是什么方式,例如,在C#和Java中? 他们有什么不同? 他们有什么代数的呢? 我熟悉通用代数及其环和领域,但我只是对Haskelltypes的工作有一个模糊的概念。