《算法》
第 一章
第一节
学习记录
—笔者个人博客:
------ MyBolg.
2020年08月03日
1.1.5.4 起别名
int[] a = new int[n];
a[i] = 123;
int[] b = a;
b[i] = 456; //a[i]也会变为5678
将一个数组变量赋值给另一个变量,两个变量将会指向同一个数组(即同一个地址),这种情况叫做起别名,因为新的数组对象需要通过 new 的方式创建。
想要复制数组只能new一个新的数组将元素逐个复制。
1.1.6.4 递归
- 递归代码需要注重的三点
- 递归总有一个最简单的情况,即方法的第一条语句总是一个包含return的条件语句。
- 递归调用总是去尝试解决一个规模更小的子问题,减少操纵的数据规模。
- 递归调用的父问题和尝试解决的子问题之间不应该有交集。
1.1.9.3 输出的格式化
在进行输出的时候,我们往往会因为输出格式的问题而变得不知所措,输出的规范化也一直影响着代码的规范。而在这便介绍了常用的输出格式:输出总长度,自动填充占位符;输出的精度
数据类型 | 转换代码 | 举例 | 格式化字符串举例 | 转换后输出的字符串 | 解释说明 |
---|---|---|---|---|---|
int | d | 512 | “%14d”, “%-14d” | " 512", "512 " | 场宽为14,数据右对齐;长宽为13,数据左对齐 |
double | f,e | 159.1680010754388 | “%14.2f”, “%.7f”, “%14.4e” | " 1595.17", “1595.1680011”, " 1.5952e+0.3" | 场宽为14,保留两位小数;保留七位小数;e-计数法,场宽14,4位小数 |
String | s | “Hello, World” | “%14s”, “%-14s”, “%-14.5s” | " Hello, World", "Hello, World ", "Hello " | 场宽14,数据右对齐;场宽14,数据左对齐;场宽14,数据左对齐,只保留左边五位数据 |
答疑部分
- 除0
- 1/0 会发生除以0异常
- 1.0/0.0 表达式的值是无限大(Infinity)
- 取余
- 余数的定义: (a/ b)*b + a % b 恒等于a
- -14/3 = -4 , -14%3 = -2
- 14/-3 = -4 , 14%-3 = 2
- 余数的定义: (a/ b)*b + a % b 恒等于a
- 在Java中,一个静态方法不能够将另一个静态方法作为参数