数据结构和算法分析:第一章 引论

1.2 数学知识和复习

1.2.1 指数

在这里插入图片描述

1.2.2 对数

在这里插入图片描述
在这里插入图片描述

1.2.3 级数

在这里插入图片描述
在这里插入图片描述

1.2.4 模运算

在这里插入图片描述

1.2.5 证明的方法

  1. 归纳法证明:用归纳法进行的证明有两个标准的部分。第一步是证明基准情形,就是确定定理对于某个(某些)小的值得正确性。接着就是归纳假设。一般来说,它指的就是假设定理对直到某个有限数k得所有得情况都是成立的。
  2. 反证法证明:反证法证明就是通过假设定理不成立,然后证明该假设导致某个已知的性质不成立,从而原假设是不成立的。

1.3 递归简论

当一个函数用它自己来定义时就称为递归的。

当编写递归程序时,关键是要记住递归的四条基本准则:
1. 基准情形。
2. 不断推进。
3. 设计法则。
4. 合成效益法则。

1.4 实现泛型构件 pre-Java5

面向对象的一个重要目标就是对代码的重用的支持。支持这一目标的一个重要机制就是泛型机制。如果除去对象的基本类型之外,实现方法是相同的,那么我们就可以用泛型实现

1.4.1 使用Object表示泛型

在这里插入图片描述

1.4.2 基本类型的包装

在这里插入图片描述

1.4.3 使用接口类型来表示泛型

在这里插入图片描述

1.4.4 数组类型的兼容性

Person[] arr=new Employee[5];
arr[0] = new Student(...);

Java中的数组类型是类型兼容的。这种叫做协变数组类型
Employee 和 Student 都是继承于Person类的

1.5 使用Java5泛型特性来实现泛型构件

1.5.1 简单的泛型类和泛型接口

在这里插入图片描述

1.5.2 自动拆箱/拆箱

Java5矫正了这个情形。如果一个int类型变量被传递到Integer变量对象的地方,那么,编译器将在幕后插入一个对Integer构造方法的调用。这就叫做自动装箱。而如果Integer对象被放到需要int类型的地方,则编译器将在幕后插入一个对intValue方法的调用这就叫做自动拆箱

1.5.3 菱形运算符

在这里插入图片描述

1.5.4 带有限制符号的通配符

Java中数组是协变的。但是泛型集合不是协变的。Java5中可以使用通配符来弥补这种不足。
在这里插入图片描述

1.5.5 泛型static方法

在这里插入图片描述

1.5.6 类型限界

在这里插入图片描述

1.5.7 类型擦除

泛型在很大程度上是Java语言的成分而不是虚拟机的结构。泛型类可以由编译器 通过所谓的类型擦除过程而转变为非泛型类。这样,编译器就生成一种与泛型类同名的原始类,但是类型参数都被删除了。

1.6 函数对象

一种将函数作为参数传递的独创方法是注意到对象既包含数据也包含方法,于是我们可以定义一个没有数据而只有一个方法的类,并传递该类的一个实列。事实上,一个函数通过将其放在一个对象内部而被传递。这样的对象就叫做一个函数对象。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_21125183/article/details/83245016