← 返回首页
数据结构与算法教程(Java版)-前言
发表时间:2021-09-11 09:38:14
数据结构与算法教程(Java版)-前言

1.数据结构与算法的重要性

曾经有个说法,程序=数据结构+算法。这在面向过程的编程语言流行的年代是很受推崇的。 然而,随着时代的发展,各种编程语言的出现,各种编程模式的发明,面向对象、设计模式、框架、模型等各种概念早已淹没了当年那个简单的提法。

那么,在这个多样化的年代,如果想立志做编程开发,还有没有必要学好数据结构和算法呢?

我的回答是,非但有必要,更应该学好、学博、学精。

  1. 数据结构与算法是程序的灵魂,是朴素的基础,学好它有有助于理解各种上层抽象。
  2. 在项目实践中,数据结构和算法的应用随处可见,对程序性能的影响巨大。
  3. 现在的软件工程充斥着大量的过度设计、资源浪费,在预算不充足的情况下已经严重影响了系统的效率和稳定性。学好数据结构和算法,能够从根本上去避免这些问题的出现。
  4. 当今流行大数据和人工智能时代,各种云概念,海量数据,百万用户并发(从以前著名的C10K问题,到现在的C1000K甚至更高问题),最终都是数据结构与算法的比拼。

2.什么是数据结构和算法

数据结构(data structure)是计算机中存储、组织数据的方式。

数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素集合。它包含三方面的内容,逻辑关系、存储关系及操作。不同种类的数据结构适合于不同种类的应用,而部分甚至专门用于特定的作业任务。例如,计算机网络依赖于路由表运作,B 树高度适用于数据库的封装。

当我们需要在计算机中存储这些数据时,还涉及到数据的,组织方式,在计算机中的存储方式,以及定义在该数据上的一组操作;

算法(Algorithm)是解决特定问题求解步骤的描述,在计算机中表现为有限的操作序列,在数据类型建立起来之后,就要对这些数据类型进行操作,建立起运算的集合即为程序。运算的建立、方法好坏直接决定了计算机程序原型效率的高低;

数据结构与算法的关系:两者既有联系又有区别,联系是:程序=算法+数据结构。数据结构是算法实现的基础,算法总是要依赖某种数据结构来实现的,算法的操作对象时数据结构,区别是数据结构关注的是数据的逻辑结构、存储结构的一些基本操作,而算法更多的是关注如何在数据结构的基本上解决实际问题,算法是编程思想,数据结构是这些思想的基础;

算法的特性: