算法(4th ed)(61):基础——基础编程模型 3.11

阅读数:15 2019 年 10 月 30 日 07:09

算法(4th ed)(61):基础——基础编程模型 3.11

(展望)

在本节中,我们描述了一个精巧而完整的编程模型,数十年来它一直在(并且现在仍在)为广大程序员服务。但现代编程技术已经更进一步。前进的这一步被称为数据抽象,有时也被称为面向对象编程,它是我们下一节的主题。简单地说,数据抽象的主要思想是鼓励程序定义自己的数据类型(一系列值和对这些值的操作),而不仅仅是那些操作预定义的数据类型的静态方法。

面向对象编程在最近几十年得到了广泛的应用,数据抽象已经成为现代程序开发的核心。我们在本书中“拥抱”数据抽象的原因主要有三。

  • 它允许我们通过模块化编程复用代码。例如,第 2 章中的排序算法和第 3 章中的二分查找以及其他算法,都允许调用者用同一段代码处理任意类型的数据(而不仅限于整数),包括调用者自定义的数据类型。
  • 它使我们可以轻易构造多种所谓的链式数据结构,它们比数组更灵活,在许多情况下都是高效算法的基础。
  • 借助它我们可以准确地定义所面对的算法问题。比如 1.5 节中的 union-find 算法、2.4 节中的优先队列算法和第 3 章中的符号表算法,它们解决问题的方式都是定义数据结构并高效地实现它们的一组操作。这些问题都能够用数据抽象很好地解决。

尽管如此,但我们的重点仍然是对算法的研究。在了解了这些知识以后,我们将学习面向对象编程中和我们的使命相关的另一个重要特性。

评论

发布