随笔分类 - 算法学习
记录算法学习的笔记
摘要:分治 基本概念 基本思想 将原始问题分解为若干子问题 逐个解决各个子问题 得到原始问题的解 情况分类 原始问题的解在分解出的子问题中 原始问题的解需要各个子问题的解再经过综合处理得到 如果分解出的子问题和原始问题类型相同,就可以用递归的方法做了 算法示例 查找最大值最小值 O(logn) 二分搜索
阅读全文
摘要:概念 定义 树枝分叉处、树叶、树根抽象为结点(node) 树根抽象为根结点(root),一棵树最多存在一个根结点 树叶抽象为叶子节点(leaf),不再延伸出新的结点 茎干和树枝抽象为边(edge),一条边只用来连接两个结点 树中的结点不能被边连成环 子结点(child)、子树(subtree) 性质
阅读全文
摘要:栈 后进先出 栈顶指针始终指向最上方元素 栈为空时栈顶指针为-1 常用操作 清空(clear):TOP = -1 获取栈内元素个数(size):size = TOP + 1 判空(empty):TOP == -1 进栈(push):st[++TOP] = x 出栈(pop):TOP-- 取栈顶(to
阅读全文
摘要:vector 变长数组 长度根据需要而自动改变的数组 可以用来以邻接表的方式储存图 使用 头文件:#include <vector> 命名空间:using namespace std; 定义 vector<typename> name; 相当于一维数组name[SIZE],但长度可变。typenam
阅读全文
摘要:简单数学 略 最大公约数与最小公倍数 最大公约数 int gcd(int a, int b) { if (b == 0) { return a; } else { return gcd(b, a % b); } } 最小公倍数 假设d为a和b的最大公约数,则a和b的最小公倍数是a/d*b。 分数 略
阅读全文
摘要:排序 选择排序(简单选择排序) 从1到n进行n趟操作 每趟从待排序部分(i到n)选择最小元素与待排序部分第一个元素(i)交换 复杂度O(n2) for (int i = 0; i < n; i++) { int k = i; for (int j = i; j < n; j++) { if (num
阅读全文
摘要:简单模拟 题目怎么说就怎么做 查找元素 顺序查找或二分查找 图形输出 找规律直接输出 定义二维数组并填充 日期处理 额 进制转换 k进制转十进制:略 十进制转k进制:除k取余法,商为0时停止,将余数从后往前输出
阅读全文
摘要:头文件:stdio.h写成等价的cstdio 主函数 基本数据类型 变量定义 不能是标识符 第一个字符是字母或下划线 区分大小写 变量类型 int:32位整数,输出用%d long long:64位整数。如果赋大于231-1的初值要在后面加LL float:32位浮点数(实际精度6-7位)。别用 d
阅读全文

浙公网安备 33010602011771号