PAT乙级的考点总结
https://book.douban.com/subject/26827295/
计算机组成原理
数据的表示与运算
- 数字
因为位数限制,我们需要考虑溢出问题,大整数运算时,为了避免溢出,我们需要用数组来存储数据,模拟手工运算。 - 字符串
ASCII码,八位,二进制
考点:数字与字母转换,大写字母与小写字母的转换,建二维字符数组建立字符串和数字之间的关系,散列思想:字符串映射为数字处理
寻址方式—首地址+偏移量
- 顺序存储
逻辑相邻的元素,物理位置也相邻,通过首地址加索引乘偏移量来寻址。
可以利用索引是数字的特点,根据数组索引与数字相等来统计数字出现次数和数字是否出现。 - 指针
指针具有类型,类型的本质是为了说明该数据的偏移量有多大。
数学问题
进制转换
非十进制转换为十进制
十进制转换为非十进制
进制转换的衍生,日期的处理,通常两类题,时间段与时间格式的相互转换。
两类特殊数字的表示和计算
- 分数
- 大整数
共同点:用结构体来表示,考虑进位问题
筛选特殊属性的数
- 素数
- 最大公约,最小公倍
- 质因数
递推
可以得到一个递推公式来计算,通常是组合数学
算法初步
查找
问题规模较小,通常使用遍历来查找,常见题型,查找一组数据的最大最小
排序
使用STL的sort函数
自己定义cmp来实现复杂的排序操作
散列
基础为数字与字母转换等,通过将字母转换为数字,将数字作为索引来统计出现的个数或者是否出现。
贪心
每步查找最大或者最小,以此来或者最后的最优解。
二分
基础为二分查找,进阶使用为方程求解等
归并
多个序列合并为一个序列的过程
打表
通过预先计算得到一个数据表,来避免每次重复计算,将计算转变为查找操作,运用了空间换时间的思想。