XOR

20230303 2.1. 线性表及其实现

## 如何表示多项式? $$ f(x)=a_0+a_1x+...+a_{n-1}x^{n-1}+a_nx^n $$ ### 方法1:顺序存储结构直接表示 $a[i]$ :项 $x^i$ 的系数 $a_i$ 例如: $$ f (x) =4x^5-3x^2+1 $$ | 下标i | 0 | 1 | 2 ......
线性 20230303

20230307 2.2. 堆栈

## 引题 计算机如何进行表达式求值? 中缀表达式:运算符号位于两个运算数之间。如 ,a+b*c-d/e **后缀表达式**:运算符号位于两个运算数之后。如, abc*+de/- ## 堆栈的抽象数据类型描述 堆栈(Stack):具有一定操作约束的线性表(只在一端(栈顶,Top)做 插入、删除) - ......
堆栈 20230307

20230314 3.1. 树

## 树的定义 树(Tree): n(n≥0)个结点构成的有限集合。 当n=0时,称为空树; 对于任一棵非空树(n> 0),它具备以下性质: - 树中有一个称为“根(Root)”的特殊结点,用 r 表示; - 其余结点可分为m(m>0)个互不相交的有限集T1,T2,... ,Tm,其中每个集合本身又 ......
20230314

20230314 3.2. 二叉树

## 二叉树的定义 二叉树T:一个有穷的结点集合。 - 这个集合可以为空 - 若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。 二叉树具体五种基本形态: - 空二叉树; - 只有根结点的二叉树; - 只有根结点和左子树TL的二叉树; - 只有根结点和右子树TR的二叉树 ......
20230314

20230315 3.3. 二叉树的遍历

## 先序、中序、后序遍历 | 遍历方式 | 描述 | | | | | 先序遍历 | 1. 访问根结点; 2. 遍历其左子树; 3. 遍历其右子树。 | | 中序遍历 | 1. 遍历其左子树; 2. 访问根结点; 3. 遍历其右子树。 | | 后序遍历 | 1. 遍历其右子树;; 2. 访问根结点; ......
20230315

20230315 4.1. 二叉搜索树

二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质: 1. 非空左子树的所有键值小于其根结点的键值 2. 非空右子树的所有键值大于其根结点的键值 3. 左、右子树都是二叉搜索树(递归定义) 二叉搜索树操作 ......
20230315

20230315 4.2. 平衡二叉树

## 概念 “平衡因子(Balance Factor,简称BF): BF(T) = hL-hR, 其中hL和hR分别为T的左、右子树的高度。 平衡二叉树(Balanced Binary Tree)(AVL树) :空树,或者 任一结点左、右子树高度差的绝对值不超过1,即|BF(T) |≤ 1 **给定 ......
20230315

20230327 5.1. 堆

## 概念 优先队列(Priority Queue):特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。 问题:如何组织优先队列? - 一般的数组、链表? - 有序的数组或者链表? - 二叉搜索树? AVL树? **堆的两个特性** - 结构性:**用数组 ......
20230327

20230328 5.2. 哈夫曼树与哈夫曼编码

## 概念 哈夫曼树(Huffman Tree) [参考之前整理的笔记](https://www.cnblogs.com/huangwenjie/p/13660756.html#autoid-h2-1-3-0) 解决的问题:如何根据结点不同的查找频率构造更有效的搜索树? 带权路径长度(WPL):设二 ......
20230328 编码

20230329 5.3. 集合及运算

## 集合的表示 - 集合运算:交、并、补、差、判定一个元素是否属于某一集合 - 并查集:集合 **并、查** 某元素属于什么集合 - 并查集问题中集合存储如何实现? - 可以用树结构表示集合,树的每个结点代表一个集合元素 ## 集合运算 - 采用数组存储形式 - 双亲表示法:孩子指向双亲 - 负数 ......
20230329

20230329 6.1. 什么是图

## 什么是“图” (Graph) - 表示“多对多”的关系 - 包含 - 一组顶点:通常用 V (Vertex) 表示顶点集合 - 一组边:通常用 E (Edge) 表示边的集合 - 边是顶点对:(v, w) ∈ E ,其中 v, w ∈ V - 有向边 表示从v指向w的边(单行线) - 不考虑重 ......
20230329

20230329 6.2. 图的遍历

## 深度优先搜索(Depth First Search, DFS) ```c void DFS ( Vertex V ) { visited[ V ] = true; for ( V 的每个邻接点 W ) if ( !visited[ W ] ) DFS( W ); } ``` 若有N个顶点、E条 ......
20230329

20230330 7.1. 最短路径问题

## 最短路径问题的抽象 - 在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径 - 这条路径就是两点之间的最短路径(Shortest Path) - 第一个顶点为源点(Source) - 最后一个顶点为终点(Destination) 问题分类: - 单源最短路径问题:从某固定源 ......
20230330 问题

20230404 8.1. 最小生成树问题

## 概念 - 最小生成树(Minimum Spanning Tree) - 最小生成树存在 ↔ 图连通 - 是一棵树 - 无回路 - |V|个顶点一定有|V|-1条边 - 向生成树中任加一条边都一定构成回路 - 是生成树 - 包含全部顶点 - |V|-1条边都在图里 - 边的权重和最小 ## 贪心 ......
20230404 问题

20230406 8.2. 拓扑排序

## 概念 - 拓扑序:如果图中从V到W有一条有向路径,则V一定排在W之前。满足此条件的顶点序列称为一个拓扑序 - 获得一个拓扑序的过程就是拓扑排序 - AOV (Activity On Vertex) 如果有合理的拓扑序,则必定是 **有向无环图**(Directed Acyclic Graph, ......
拓扑 20230406

20230406 9.1. 简单排序

## 前提 `void X_Sort ( ElementType A[], int N )` - 大多数情况下,为简单起见,讨论从小到大的整数排序 - N是正整数 - 只讨论基于比较的排序(> = =0; P-- ){ flag = 0; for( i=0; i A[i+1] ) { Swap(A[ ......
20230406

20230407 9.3. 堆排序

## 选择排序 ```c void Selection_Sort ( ElementType A[], int N ) { for ( i = 0; i =0; i-- )/* BuildHeap */ PercDown( A, i, N ); for ( i=N-1; i>0; i-- ) { S ......
20230407

20230407 9.4. 归并排序

## 核心:有序子列的归并 ![归并](https://images.cnblogs.com/cnblogs_com/huangwenjie/2284066/o_230407021600_image.png) 如果两个子列一共有N个元素,则归并的时间复杂度是 $T ( N ) = O( N )$ ` ......
20230407

20230407 10.1. 快速排序

## 快速排序 ![快速排序](https://images.cnblogs.com/cnblogs_com/huangwenjie/2284066/o_230407024446_image.png) 什么是快速排序算法的最好情况?每次正好中分 T(N) = O( NlogN ) ```c void ......
20230407 10

20230407 10.2. 表排序

## 间接排序 - 表排序适用于排列复杂结构的实体 - 表排序不移动实体,只移动指向实体的指针,也就是 **间接排序** - 定义一个指针数组作为“表”(table) ![表](https://images.cnblogs.com/cnblogs_com/huangwenjie/2284066/o_ ......
20230407 10

20230407 10.3. 基数排序

## 桶排序 假设我们有 N 个学生,他们的成绩是0到100之间的整数(于是有 M = 101 个不同的成绩值)。如何在线性时间内将学生按成绩排序? ```c void Bucket_Sort(ElementType A[], int N) { count[]初始化; while (读入1个学生成绩 ......
基数 20230407 10

远程提交代码冲突合并流程

步骤 1: 获取源代码,本地进行分支合并. git fetch origin git checkout 当前分支 git merge origin/xxx 这里没太明白,反正就是远端的分支,origin/远端分支版本 步骤 2: 查看冲突文件,本地解决冲突. 步骤 3: 推送至源分支,修改直接展示在 ......
流程 代码

linux下安装Ipmi工具,调整服务器CPU风扇速度.

## 安装ipmi工具 ``` yum -y install ipmitool ``` 加载模块 ``` modprobe ipmi_si && modprobe ipmi_devintf && modprobe ipmi_msghandler ``` 查看模块 ``` lsmod |grep ip ......
风扇 速度 服务器 工具 linux

不要用基指针删除派生对象数组

看陈皓的博客后,发现这一点,以前都没注意过,也是因为没这样用过 陈皓叔 R.I.P... 见下面代码: #include <iostream> class Base { int b; public: virtual ~Base() { std::cout << "B::~B()" << std::e ......
数组 指针 对象

[C#] 应用互斥锁/防双开

System.Threading.Mutex mutex = new System.Threading.Mutex(false, "CottonGating"); bool Running = !mutex.WaitOne(0, false); if (!Running) { Application ......

花2个月时间整理了3.5W字的自动化测试面试题(答案+学习路线)!为了找到好工作,拼了!

从5月初开始找工作到现在,先后面试了阿里巴巴、字节跳动、网易、快手的测试开发岗。大公司对于测试开发的要求相比来说高很多,要求掌握的知识点的广度和深度层次也比较高,遂整理了这两个月的面试题目文档供大家参考,同时也是为了方便以后自己需要的时候刷一刷,不用再去到处找题。希望大家都能找到满意的工作,共勉之! ......
路线 答案 时间 3.5

转:ASP.NET Core Identity 系列之六

转自:https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247486202&idx=1&sn=7ec06927330a57a8a78143d88f10f987 这节我们主要介绍在Identity中添加自定义属性。如果我们想在Users类中添 ......
Identity Core ASP NET

每天一个Linux命令-rsync.

rsync is a file transfer program capable of efficient remote update via a fast differencing algorithm. 关于笔者常用到的一些选项如下: Options -v, --verbose increase ......
命令 Linux rsync

一段Java程序,不管正确与否,在2秒钟之后拿到结果,如何实现

抛砖引玉以一下,为网络添加一个词条 使用多线程 和 Future 对象,2秒钟之后拿到结果,如果拿不到就抛出异常 future.get(2,TimeUnit.SECONDS); ......
结果 程序 Java

AtCoder Beginner Contest 302 ABCDEF

[AtCoder Beginner Contest 302](https://atcoder.jp/contests/abc302) ![image](https://img2023.cnblogs.com/blog/2458891/202306/2458891-20230621162021815- ......
Beginner AtCoder Contest ABCDEF 302