数据结构对编程的重要性有:1. 数据结构编程的灵魂,是朴素的基础;2. 在编程实践中,数据结构随处可见;3. 学好数据结构可避免大量的过度设计和资源浪费。
数据结构是编程的灵魂,是朴素的基础,学好它有有助于理解各种上层抽象。
在没有充分学习和理解数据结构与算法的基础上去学习面向对象、设计模式,是无法真正体会这些上层抽象的真正意义的,最终可能会导致学之泛泛,用之泛泛。
在工作中,见识了太多开口设计模式,闭口面向对象的人,在某个具体的问题上,问他为什么要用面向对象,为什么要用这样的设计模式,得到的回答相当空泛,有时候甚至是为了对象而对象,为了设计而设计。这样的人,做出来的设计,往往过度设计,似是而非,导致做出来的东西混乱不堪。
遇到的真正设计高手,还没有一个是对数据结构与算法是不精通的。让他讲为什么这样设计,为什么这样架构,他往往能深入浅出,将面向对象的思想、设计模式的考虑,与基础的数据结构和对应的算法结合起来,贴合问题的实际情况,给出良好的结论。
有人说在工作中没用到数据结构和算法,这是一种误解。并非让你去实现一个链表才叫使用了链表。这可能与大学里教条的教学有关,一味地讲这些数据结构是怎么编程实现的,一味地讲这些算法是怎么证明的,却忽视了学习这些的主要目的是为了在编程实践中去应用它,而不是去重造轮子再发明一次(当然也有少数在算法领域继续深造作出新贡献的人,这里就排除不讲了)。
见过不少对链表的基本属性都不了解的人,在程序里一味使用数组,内存能开多大就多大;也见过太多根本不知道HASH原理的人,对Hash表随意使用,造成KEY值严重重复、效率极为低下、失去了选用HASH的初衷。
即使不是算法密集型的程序里,哪怕是面向业务的编程工作中,能够适当地应用数据结构,选择恰当的算法,也是能极大地提高程序的开发效率、运行效率和运行稳定性的。更不要说面向业务和工作流的基础平台,本身就含有大量的数据结构与算法理论,想利用好这些平台,没有一个好的底子,那会事倍功半的。
J2EE就是优异代表。一个WAS应用,能够承受的并发用户数,竟然只有区区的100!!花费百万元的投资,去买几十个CPU、上百G内存,花费十倍甚至几十倍的代价,却只能提升百分之几十的效率。这还是一个产品级的应用,是一个大型银行核心的数据服务之一。那就更不用提在水平更低的项目组中那些可笑的效率问题了。
这是J2EE、JAVA的错吗?主要原因,还是开发者自身的水平,对算法无知到了极点,对数据结构忽视到了极点。
延伸阅读:
数据结构是计算机存储、组织数据的方式。对于特定的数据结构(比如数组),有些操作效率很高(读某个数组元素),有些操作的效率很低(删除某个数组元素)。程序员的目标是为当前的问题选择优异的数据结构。
数据是程序的核心要素,因此数据结构的价值不言而喻。无论你在写什么程序,你都需要与数据打交道,比如员工工资、股票价格、杂货清单或者电话本。在不同场景下,数据需要以特定的方式存储,我们有不同的数据结构可以满足我们的需求。
以上就是关于数据结构的内容希望对大家有帮助。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。