摘要: 指针 指针运算符 【优先级】 后置++,-- 前置++,-- 逻辑!* & 算数运算符 关系运算符 && || 赋值运算符 【注意】 *&a=*(&a) (自右向左) &*a=&(*a) (自右向左) 【注意】 *(p++) 加的是地址,然后取出地址的值 (*p)++ 加的是从地址中取出的值 指向数 阅读全文
posted @ 2021-11-22 10:08 fw_48925 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 位运算 理论 ^1翻转 ^0不变 &0置0 &1不变 |1 置1 |0 不变 判断奇偶:n&1 将最右边的一个1置0:n&(n-1) 返回i的二进制最低位位1的权值:i & (-i) 正负数转换: ~a + 1 例子: // k位置0: x &= ~(1 << m) // k位置1: x |= (1 阅读全文
posted @ 2021-11-06 23:41 fw_48925 阅读(45) 评论(0) 推荐(1) 编辑
摘要: 本质: 将待求解问题分解为若干子问题,先求解子问题,再结合这些子问题的解得到原问题的解。(在这点上和分治法很像) 那为什么不直接用分治法: 因为重复计算。 适合用动态规划法求解的问题经分解得到的子问题往往不是相互独立的。 有些问题分解后的子问题往往是重复的,若用分支法则会重复计算耗费时间内存。 解决 阅读全文
posted @ 2021-11-06 21:44 fw_48925 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 1. 引子:汉诺塔 1.1 汉诺塔题目 古代某寺庙中有一个梵塔,塔内有3个座A、B和C,座A上放着64个大小不等的盘,其中大盘在下,小盘在上。有一个和尚想把这64 个盘从座A搬到座B,但一次只能搬一个盘,搬动的盘只允许放在其他两个座上,且大盘不能压在小盘上。现要求用程序模拟该过程,输入一个正整数n, 阅读全文
posted @ 2021-10-23 22:40 fw_48925 阅读(59) 评论(1) 推荐(1) 编辑
摘要: 堆 逻辑 完全二叉树 储存 数组存储 意义 优先级队列,寻找极值 性质 最大值堆和最小值堆:最大值堆就是根节点是最大的元素,最小值堆反之。堆中的数据局部有序,即父节点的值是其子树所有结点的最大值或最小值,左右子节点大小无特定要求。根节点的两个树也是一个堆。 【错误认知】大/小根堆中下标为1就是第一大 阅读全文
posted @ 2021-10-17 11:05 fw_48925 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1.【STL概论】 目标 提升复用性 尝试 函数(functions),类别(classes),到函数库(function libraries),类别库(class libraries)、各种组件,从模块化设计,到面向对象(object oriented ) 目标 建立数据结构和算法的一套标准,并且 阅读全文
posted @ 2021-10-16 22:17 fw_48925 阅读(53) 评论(0) 推荐(1) 编辑
摘要: EOF 它是end of file的缩写,表示"文字流"(stream)的结尾。 这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。 键盘怎么输入: Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF (如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓 阅读全文
posted @ 2021-10-10 10:55 fw_48925 阅读(168) 评论(0) 推荐(1) 编辑