通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

数据结构对编程的重要性有哪些

数据结构对编程的重要性有:1. 数据结构编程的灵魂,是朴素的基础;2. 在编程实践中,数据结构随处可见;3. 学好数据结构可避免大量的过度设计和资源浪费。

一、数据结构对编程的重要性

1. 数据结构编程的灵魂,是朴素的基础

数据结构是编程的灵魂,是朴素的基础,学好它有有助于理解各种上层抽象。

在没有充分学习和理解数据结构与算法的基础上去学习面向对象、设计模式,是无法真正体会这些上层抽象的真正意义的,最终可能会导致学之泛泛,用之泛泛。

在工作中,见识了太多开口设计模式,闭口面向对象的人,在某个具体的问题上,问他为什么要用面向对象,为什么要用这样的设计模式,得到的回答相当空泛,有时候甚至是为了对象而对象,为了设计而设计。这样的人,做出来的设计,往往过度设计,似是而非,导致做出来的东西混乱不堪。

遇到的真正设计高手,还没有一个是对数据结构与算法是不精通的。让他讲为什么这样设计,为什么这样架构,他往往能深入浅出,将面向对象的思想、设计模式的考虑,与基础的数据结构和对应的算法结合起来,贴合问题的实际情况,给出良好的结论。

2. 在编程实践中,数据结构随处可见

有人说在工作中没用到数据结构和算法,这是一种误解。并非让你去实现一个链表才叫使用了链表。这可能与大学里教条的教学有关,一味地讲这些数据结构是怎么编程实现的,一味地讲这些算法是怎么证明的,却忽视了学习这些的主要目的是为了在编程实践中去应用它,而不是去重造轮子再发明一次(当然也有少数在算法领域继续深造作出新贡献的人,这里就排除不讲了)。

见过不少对链表的基本属性都不了解的人,在程序里一味使用数组,内存能开多大就多大;也见过太多根本不知道HASH原理的人,对Hash表随意使用,造成KEY值严重重复、效率极为低下、失去了选用HASH的初衷。

即使不是算法密集型的程序里,哪怕是面向业务的编程工作中,能够适当地应用数据结构,选择恰当的算法,也是能极大地提高程序的开发效率、运行效率和运行稳定性的。更不要说面向业务和工作流的基础平台,本身就含有大量的数据结构与算法理论,想利用好这些平台,没有一个好的底子,那会事倍功半的。

3. 学好数据结构可避免大量的过度设计和资源浪费

J2EE就是优异代表。一个WAS应用,能够承受的并发用户数,竟然只有区区的100!!花费百万元的投资,去买几十个CPU、上百G内存,花费十倍甚至几十倍的代价,却只能提升百分之几十的效率。这还是一个产品级的应用,是一个大型银行核心的数据服务之一。那就更不用提在水平更低的项目组中那些可笑的效率问题了。

这是J2EE、JAVA的错吗?主要原因,还是开发者自身的水平,对算法无知到了极点,对数据结构忽视到了极点。

延伸阅读:

二、数据结构概念

数据结构是计算机存储、组织数据的方式。对于特定的数据结构(比如数组),有些操作效率很高(读某个数组元素),有些操作的效率很低(删除某个数组元素)。程序员的目标是为当前的问题选择优异的数据结构。

数据是程序的核心要素,因此数据结构的价值不言而喻。无论你在写什么程序,你都需要与数据打交道,比如员工工资、股票价格、杂货清单或者电话本。在不同场景下,数据需要以特定的方式存储,我们有不同的数据结构可以满足我们的需求。

以上就是关于数据结构的内容希望对大家有帮助。

相关文章