随笔分类 - Algorithm
摘要:我们使用贪心算法,看看哪个是决定最大长度,从这个切入点入手。然后计算最大时间 #include "iostream" #include "vector" #include "algorithm" using namespace std; struct Job { int b, j; bool ope
阅读全文
摘要:思维体操入门,进行排序后,拿最小的进行比对,如果可以砍头,将骑士能力值置为-1,并加上金额,否则遇到不行的时候,直接打印退出程序。 #include "iostream" #include "algorithm" using namespace std; int n, m; int head[999
阅读全文
摘要:```c // lca_bst node *lca_bst(node *n, node *p, node *q) { if((n->val - p->val) * (n->val - q->val) val val && n->val val) return lca_bst(n->right, p, q); else return lca_bst(n->left, p ,q); } // lca_
阅读全文
摘要:KMP算法 在字符串匹配中,我们一般是BF算法,暴力破解。当然上完数据结构课之后,我们知道可以通过KMP进行优化。 上数据结构这门课的时候,我没有好好听KMP,本篇文章参考程杰老师的《大话数据结构》中KMP算法一章节记录的笔记,可以的话请阅读原书中该章节,这里相当于原书的复述。 这边引用书中的一句话
阅读全文
摘要:动态规划 参考视频av16544031、av18512769 一、重叠子问题 问题 1 回顾斐波那契数列,实质是一个递归关系 也是一个overlap sub problem 重叠子问题 如果我们要计算fib(7),就会去计算fib(6)和fib(5),之后继续往下,中间fib(6)分解成fib(5)
阅读全文
摘要:``` typedef struct HNode *Heap; /* 堆的类型定义 */ struct HNode { ElementType *Data; /* 存储元素的数组 */ int Size; /* 堆中当前元素个数 */ int Capacity; /* 堆的最大容量 */ }; typedef Heap MaxHeap; /* 最大堆 */ typedef Heap MinHeap
阅读全文
摘要:[TOC] AVL Tree精讲专题 前言 因为AVL树之前写过一次,但是感觉左右旋转弄反了,这次重新整理了下,参照数据结构——陈越著,分别进行列举c++版本的AVL树和Java版本的AVL树,供参考和互相学习。图片来源,我们老师的PPT。 一、AVL Tree for CPP(Coding) 1.
阅读全文
摘要:快速排序(lomuto划分快排,hoare划分快排,classic经典快排,dualpivot双轴快排) @[toc] 一、快速排序思想 快速排序的思想,是找出一个中轴(pivot),之后进行左右递归进行排序,关于递归快速排序,C程序算法如下。 二、划分思想 关于划分,不同的划分决定快排的效率,下面
阅读全文
摘要:``` include include include using namespace std; //归并算法 void merge(int a,int begin1, int end1, int begin2, int end2, int tmp) { //进行划分为[begin1,end1],[
阅读全文
摘要:学校练习,简单的我就不放上来了,值得整理的,我保存一下 习题4 1.1.验证元素唯一性(二重循环) 1.1.1.算法描述 验证元素唯一性,主要方法是:建立两重循环,进行校验每个元素和其他元素的 1.1.2.伪代码 UniqueElements(A[0..m-1]) //验证给定数组中的元素是否唯一
阅读全文
摘要:学校练习,简单的我就不放上来了,值得整理的,我保存一下 习题9 1.1. 伪随机数(线性同余法) 1.1.1.算法描述 我们使用线性同余法,来限定一些离散点在y=a*x+b上。 1.1.2.伪代码 random(n,m,seed,a,b) //根据现行同余法生成n个伪随机书的一个序列 //输入:一个
阅读全文
摘要:这边防止自己忘记,附上原作者链接,前两天刷到的,看了柳神的笔记,觉得有道理,这两天突然找不到了~ https://blog.csdn.net/liuchuo/article/details/51994215
阅读全文
摘要:算法复杂性经常描述为递归方程,解递归方程得到算法复杂性的具体表示 用特征方程解递归方程 用生成函数解递归方程 用递推方法解递归方程 用递推方法解递归方程,也就是我们常用的数学归纳法,用生成函数解递归方程,也就是我们使用循环代替递归。 这节,我们利用高等数学的常微分方程,来进行求解递归式。 K阶常系数
阅读全文
摘要:习题1 1.1. 用于计算gcd(m,n)的欧几里得算法 1.1.1. 算法描述 辗转相除法,又名欧几里得算法(Euclidean algorithm),是求最大公约数(greater common divisor)的一种,通常做法是:用较小的数去除较大的数,用第二余数再去除第一余数,最终我们可以得
阅读全文

浙公网安备 33010602011771号