1.基础编程模型和数据抽象

  把描述和实现算法所用到的语言特性,软件库和操作系统特性总称为基础编程模型。

  

  编写递归代码注意的点:

    1. 递归总有一个最简单的情况 —— 方法的第一条语句总是包含 return 的条件语句。

    2. 递归调用总是尝试解决一个规模更小的子问题,这样递归才能收敛到最简单的情况。

    3. 递归调用的父问题和尝试解决的子问题之间不应该有交集。

 

  数据类型指的是一组值和一组对这些值的操作的集合。抽象数据类型(ADT) 是一种能够对使用者隐藏数据表示的数据类型。用高级语言的类来实现抽象数据类型和用一组静态方法实现一个函数库并没有什么不同。抽象数据类型的主要不同之处在于它将数据和函数的实现关联,并将数据的表示方式隐藏起来。在使用抽象数据类型时,我们的注意力集中在API 描述的操作上而不会去关心数据的表示;在实现抽象数据类型时,我们的注意力集中在数据本身并将实现对该数据的各种操作。

  抽象数据之所以重要是因为在程序设计上支持封装。

  我们研究同一问题的不同算法的主要原因在于他们的性能特点不同。抽象数据类型可以在不修改测试代码的情况下用一种算法替换另一种算法。

 

  数据抽象中的一个基础概念:对象是能够承载数据类型的值的实体。所有的对象都有三大特性:状态,标识和行为。对象的状态即数据类型中的值。对象的标识就是它在内存中的位置。对象的行为就是数据类型的操作。

你可能感兴趣的:(1.基础编程模型和数据抽象)