普林斯顿《算法》笔记 (一)

  • 时间:
  • 浏览:0

2)计算平均值

假如有一天 用next域构造链表:

抽象数据类型和静态土措施的相同点

1)判断与非 为素数

在土措施中调用实例变量,若总出 二义性,可使用 this 来区别:

组成部分:私有实例变量 (private instance variable),构造函数 (constructor),实例土措施 (instance method) 和有另另两个 测试用例(client) 。

1.1节的内容主要为介绍Java的基本语法以及书中会用到的库。

下图为有另另两个 Java程序示例和相应的注解:

实例土措施和静态土措施 :

每个Java类都为宜涵盖另另两个 多构造函数以创建有另另两个 对象的标识。一般来说,构造函数的作用是初始化实例变量。不可能 没人定义构造函数,类不可能 隐式将所有实例变量初始化为默认值,原始数字类型默认值为0,布尔型为false,引用类型变量为null。

引用 (reference) 是访问对象的并与非 生活土措施,如图所示:

用链表实现栈的优点:

要创建 (或实例化) 有另另两个 对象,用关键字new并紧跟类名以及 () 来触发它的构造函数。每当用例调用new (),系统都会:1. 为新对象分配内存空间。 2. 调用构造函数初始化对象中的值。 3. 返回该对象的有另另两个 引用。

链表的遍历:

链表是并与非 生活递归的数据底部形态,它不可能 为空 (Null),不可能 是指向有另另两个 结点 (Node) 的引用,该结点包涵盖另另两个 泛型元素和有另另两个 指向另二根链表的引用。

4)反转数组中元素

一般数组a[] 的遍历:

"<" 表示从文件读取,">"表示写入文件

有另另两个 数据类型的例子:

数组名表示的是整个数组,不可能 将有另另两个 数组变量赋给另外有另另两个 变量,则有另另两个 变量不可能 指向同有另另两个 数组:

创建有另另两个 对象,并通过声明搞笑的话将变量与对象的引用关联起来:

5)矩阵乘法

背包是并与非 生活不支持从中删除元素的集合数据类型,它的目的是架构设计 元素并迭代遍历所有架构设计 到的元素。使用背包说明元素的外理顺序不重要。

1)找最大值

3)好友克隆数组

典型的静态土措施如下图所示:

栈是并与非 生活基于后进先出 (LIFO) 策略的集合类型。

2)计算调和级数

将每个结点的item域设为所需的值:

栈测试用例:

Java中,所有非原始数据类型的值都在对象。对象的三大底部形态:情况、标识、行为。

基于Java中的currentTimeMillis() 土措施,该土措施能返回以毫秒计数的当前时间。

数据类型是指一组值和一组对值的操作的集合,对象是不能存储任意该数据类型的实体,或数据类型的实例。

有另另两个 Node对象包涵盖另另两个 实例变量,类型分别为Item (参数类型) 和Node,通过new Node () 触发构造函数来创建有另另两个 Node类型的对象。调用的对象是有另另两个 指向Node对象的引用,它的实例变量均被初始化为null。

构造二根涵盖元素to、be和or的链表,首先为每个元素创建结点:

将first指向first.next:

队列测试用例:

不同点

本书使用成本模型来评估算法的性质,你是什么 模型定义了算法中的基本操作。你是什么3-sum什么的问题的成本模型是访问数组元素的次数。

队列是并与非 生活基于先进先出(FIFO)策略的集合类型。