选择效率低下的数据结构,它可以为我们创造哪些问题?

时间:2010-02-04 05:34:30

标签: algorithm data-structures

假设我有一个使用低效数据结构的软件程序。现在我怎样才能让它变得高效。似乎我们应该简单地改变数据结构,但事实并非如此。根据我的观点,整个软件需要改变。 你的观点是什么?

4 个答案:

答案 0 :(得分:2)

对于我们来说,提出准确答案的问题可能有点过于模糊,但使用“效率低下”的数据结构可能意味着:

  • 访问数据需要更多时间/更多CPU(无论是插入/读取/删除)
    • 可能会导致性能问题;即缓慢的申请
    • 时间就是金钱
  • 编写访问该数据结构的代码可能需要更多时间
    • 和开发人员的时间也要花钱


是应该更改整个应用程序,还是应该更正使用“正确”的数据结构?

嗯:

  • 更改数据结构需要多少费用?
  • 改变整个应用程序需要多少钱?
    • 包括迁移数据所需的时间,向用户解释如何使用新应用程序,......

答案 1 :(得分:1)

这非常主观,应该标记为这样。

这将广泛取决于您使用的语言,此数据结构在应用程序中的重要部分,原始代码的编写灵活性以允许结构更改,数据结构的实际类型

在大多数情况下,如果您的应用程序编写正确,您应该可以轻松地进行更改,但是您确实找到了设计不允许轻松更改的实例,而且更难以解决的问题。

答案 2 :(得分:0)

你至少需要知道什么是便宜的,什么是好算法的昂贵。当Java刚出来时,我看到有人制作了一个Collections框架。他们对数据结构知之甚少,而且效率很低。我邮寄了他们,他们说:“哦 - 我知道这一点。现在我已经吸引了人们对这个问题的兴趣,其他人可以让它快速运作。”但是他们选择了没有良好(log n)实现的操作,并且他们没有提供可以有效实现的操作,并且在那种环境中会有用(我想我记得合并优先级队列)。

因此,没有好的方法可以使用不幸的Collections框架编写程序,并通过修复框架的实现来加快速度。

答案 3 :(得分:0)

我不确定这个问题是否以这种方式被正确回答。这是模糊的方式。 IMHO