摘要: 作业 5:非上下文敏感指针分析 题目链接:https://tai-e.pascal-lab.net/pa5.html 评测链接:https://oj.pascal-lab.net/problem 作业出品:南京大学《软件分析》课程,谭添、李樾 代码讲解 addReachable 这个函数的作用是遇到 阅读全文
posted @ 2024-01-25 10:22 gonghr 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 作业 4:类层次结构分析与过程间常量传播 实现类层次结构分析(CHA) dispatch :根据方法调用者的类和方法签名寻找目标方法。 比较显然,是个递归算法。 递归的终止条件有两个,一个是如果一直找不到相应方法,不断递归到父类,最后递归到 Object 在向上递归就是 null ,Object 没 阅读全文
posted @ 2024-01-24 10:47 gonghr 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 作业 3:死代码检测 题目链接:https://tai-e.pascal-lab.net/pa3.html 评测链接:https://oj.pascal-lab.net/problem 作业出品:南京大学《软件分析》课程,谭添、李樾 知识点讲解 直接看题目链接中的讲解即可,非常详细。 代码讲解 整体 阅读全文
posted @ 2024-01-23 10:00 gonghr 阅读(451) 评论(0) 推荐(2) 编辑
摘要: 作业 2:常量传播和 Worklist 求解器 题目链接:https://tai-e.pascal-lab.net/pa2.html 评测链接:https://oj.pascal-lab.net/problem 作业出品:南京大学《软件分析》课程,谭添、李樾 项目结构讲解 实验进行之前,要对项目中类 阅读全文
posted @ 2024-01-22 11:01 gonghr 阅读(657) 评论(1) 推荐(0) 编辑
摘要: 作业 1:活跃变量分析和迭代求解器 题目链接:https://tai-e.pascal-lab.net/pa1.html 评测链接:https://oj.pascal-lab.net/problem 作业出品:南京大学《软件分析》课程,谭添、李樾 实现活跃变量分析 newInitialFact :负 阅读全文
posted @ 2024-01-21 16:14 gonghr 阅读(356) 评论(0) 推荐(0) 编辑
摘要: Machine Teaching 1 Introduction :one: 什么是 Machine Teaching? searching the optimal (usually minimal) teaching set given a target model and a specific l 阅读全文
posted @ 2023-01-15 19:10 gonghr 阅读(444) 评论(0) 推荐(1) 编辑
摘要: 设计模式通关指南 作业一 小王为某管理信息系统的用户管理模块设计了如图所示接口。 1)请你从面向对象设计原则的角度详细分析小王的设计存在什么问题? 2)请你采用面向对象方法帮小王重新设计,使得新设计能够符合面向对象设计原则。简要说明你的设计思想,画出UML类图。 该设计违背了接口隔离原则和单一职责原 阅读全文
posted @ 2022-11-20 18:16 gonghr 阅读(1052) 评论(0) 推荐(1) 编辑
摘要: 计算机网络通关指南 第 1 章 计算机网络和因特网 概念速览 计算机网络:一些具有独立功能的计算机通过通信介质相互连接起来,以实现资源共享的计算机的集合。 互连网:一些相互连接的计算机网络的集合(网络的网络)。 互联网:互连网的同义词。 internet 与 Internet internet:普通 阅读全文
posted @ 2022-11-13 11:32 gonghr 阅读(4931) 评论(0) 推荐(2) 编辑
摘要: 第十六周 2 的 n 次幂 高精度乘法 #include<bits/stdc++.h> using namespace std; vector<int> mul(vector<int> &A) { vector<int> C; int t = 0; for (int i = 0; i < A.siz 阅读全文
posted @ 2022-09-05 21:10 gonghr 阅读(1126) 评论(0) 推荐(1) 编辑
摘要: 名词解释 Mutual exclusion(互斥):互斥也叫间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一进程才运行去访问此临界资源,阻止对共享资源同时访问。 Process(进程):进程是进程实体的运行过程,是程序的一次执行过程,是具有 阅读全文
posted @ 2022-08-15 14:32 gonghr 阅读(5938) 评论(0) 推荐(5) 编辑
摘要: # 绪论与算法基础 **算法的基本内容(算法设计的基本步骤)** - **算法设计** - 算法表示 - 算法确认 - **算法分析** - 程序测试 **算法的重要特性**: - 确定性:每一种运算必须要有确切的定义,无二义性; - 能行性:运算都是基本运算,原则上能在有限时间内完成; - 输入: 阅读全文
posted @ 2022-07-17 17:31 gonghr 阅读(3856) 评论(0) 推荐(3) 编辑
摘要: 数据库概述(Introduction) 什么是数据库管理系统 Database Management System (DBMS) 数据 + 管理系统 数据库存在的价值 Data redundancy and inconsistency(冗余与不一致性) Difficulty in accessing 阅读全文
posted @ 2022-07-14 14:36 gonghr 阅读(6250) 评论(0) 推荐(5) 编辑
摘要: 简介 双端队列是一种特殊的队列,它的两端都可以进出元素,故而得名双端队列。 ArrayDeque是一种以循环数组方式实现的双端队列,它是非线程安全的。 它既可以作为队列也可以作为栈。 继承体系 ArrayDeque实现了 Deque接口,Deque接口继承自 Queue接口,它是对 Queue的一种 阅读全文
posted @ 2022-06-18 11:45 gonghr 阅读(410) 评论(1) 推荐(0) 编辑
摘要: 红黑树 定义 动机: 二叉查找树查找、插入、删除最坏情况时间复杂度可能退化为 O(n)。 AVL 树很好的限制了数的高度为 O(logn),插入、删除、查找的最坏时间复杂度均为 O(logn);但删除操作最多需要做 O(logn) 次旋转。 红黑树是具有如下特点的二叉查找树: 每个结点是红色或黑色的 阅读全文
posted @ 2022-04-01 23:21 gonghr 阅读(515) 评论(1) 推荐(5) 编辑
摘要: 平衡二叉树 定义 动机:二叉查找树的操作实践复杂度由树高度决定,所以希望控制树高,左右子树尽可能平衡。 平衡二叉树(AVL树):称一棵二叉查找树为高度平衡树,当且仅当或由单一外结点组成,或由两个子树形 Ta 和 Tb 组成,并且满足: |h(Ta) - h(Tb)| ⇐ 1,其中 h(T) 表示树 阅读全文
posted @ 2022-03-29 18:32 gonghr 阅读(1116) 评论(0) 推荐(3) 编辑
摘要: 二叉查找树 定义 二叉查找树(亦称二叉搜索树、二叉排序树)是一棵二叉树,且各结点关键词互异,其中根序列按其关键词递增排列。 等价描述:二叉查找树中任一结点 P,其左子树中结点的关键词都小于 P 的关键词,右子树中结点的关键词都大于 P 的关键词,且结点 P 的左右子树也都是二叉查找树 节点结构 1️ 阅读全文
posted @ 2022-03-27 21:42 gonghr 阅读(341) 评论(0) 推荐(0) 编辑
摘要: Trie 树的模板 Trie 树的简介 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。他的核心思想是空间换时间,空间消耗大但是插入和查询有着很优秀的时间复杂度。 Trie 树的定义 Trie树的键不是直接保 阅读全文
posted @ 2022-03-17 17:33 gonghr 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 共 4 个 Chapter 参考资料: UML软件建模技术-基于IBM RSA工具(清华大学出版社) UML2.0基础与RSA建模实例教程(人民邮电) 面向对象葵花宝典(李运华)(电子工业出版社) 火球——UML大战需求分析(第二版)(张传波 ) 吉林大学统一建模语言及工具 ppt Why we m 阅读全文
posted @ 2022-03-17 11:44 gonghr 阅读(2419) 评论(0) 推荐(2) 编辑
摘要: 引言 组合数学研究的主要问题: 存在性问题 计数和分类问题 构造性问题 优化问题 幻方问题 幻方的定义 幻方:一个 n 阶幻方是由整数 1,2,3…,n^2 按下述方式 组成的 n×n 方阵:该方阵每行上的整数的和、每列上的整数的和以及两条对角线中每条对角线上的整数的和都等于同一个数 幻和 S:每一 阅读全文
posted @ 2022-03-08 17:43 gonghr 阅读(1292) 评论(0) 推荐(0) 编辑
摘要: 121. 买卖股票的最佳时机 LeetCode 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利 阅读全文
posted @ 2022-02-15 14:30 gonghr 阅读(413) 评论(1) 推荐(1) 编辑
摘要: 饿汉式 饿汉式:类加载就会导致该单实例对象被创建 // 问题1:为什么加 final // 问题2:如果实现了序列化接口, 还要做什么来防止反序列化破坏单例 public final class Singleton_hungry implements Serializable { // 问题3:为什 阅读全文
posted @ 2022-01-27 12:26 gonghr 阅读(558) 评论(0) 推荐(3) 编辑
摘要: 快速幂 引入 快速幂是用来解决求幂运算的高效方式。 例如我们要求 x 的 90 次方,一般的方法可以通过一个循环,每次乘一个 x,循环 90 次之后就可以得到答案,时间复杂度为 O(n),效率较低。而通过快速幂,我们可以在 O(log(n)) 的时间复杂度内完成该运算。 具体方法 我们可以通过二进制 阅读全文
posted @ 2022-01-18 17:53 gonghr 阅读(387) 评论(0) 推荐(1) 编辑
摘要: 问题描述 给定一个数据流,数据流长度 N 很大,且 N 直到处理完所有数据之前都不可知,请问如何在只遍历一遍数据(O(N))的情况下,能够随机选取出 m 个不重复的数据。 比较直接的想法是利用随机数算法,求 random(N) 得到随机数,但是题目表明数据流极大,这种大数据量是无法一次都读到内存的, 阅读全文
posted @ 2022-01-17 16:52 gonghr 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 整理了一下超星上的题目以及教材《计算机组成原理 第3版》——唐朔飞 的课后题。 第 1 章 计算机系统概论 超星题目 说明计算机系统的层次结构。 说明冯诺依曼体系结构的特点。 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。 指令和数据以同等地位存储在存储器中,并可按地址寻访 阅读全文
posted @ 2021-12-18 10:09 gonghr 阅读(14686) 评论(5) 推荐(10) 编辑
摘要: 什么是 JVM ? 定义 Java Virtual Machine - java 程序的运行环境(java 二进制字节码的运行环境) 好处 一次编写,到处运行 自动内存管理,垃圾回收功能 数组下标越界检查 多态 jvm jre jdk 常见的 JVM 整体结构 内存结构 程序计数器 定义 Progr 阅读全文
posted @ 2021-11-18 20:48 gonghr 阅读(415) 评论(0) 推荐(2) 编辑
摘要: 教材基于《计算机组成原理 第3版》 ——唐朔飞 无符号数和有符号数 无符号数 无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。 寄存器的位数用来反映无符号数的范围。 有符号数 原码 🌅 原码的定义: 整数 小数 🌰 举例: 反码 🌅 反码的定义: 整数 小数 补码 阅读全文
posted @ 2021-11-09 18:46 gonghr 阅读(940) 评论(0) 推荐(0) 编辑
摘要: 代数系统 定义6.1.1:设 S 是一个非空集合,称 S×S 到 S 的一个映射 f 为 S 的一个二元代数运算,即,对于 S 中任意两个元素 a , b ,通过 f ,唯一确定 S 中一个元素 c : f(a,b)= c ,常记为 a * b = c 。 由于一般情况下, (a,b) , (b,a 阅读全文
posted @ 2021-11-01 10:04 gonghr 阅读(10435) 评论(2) 推荐(3) 编辑
摘要: 格 是格(L,≤)的子格。 格的定义 偏序格 定义:给出一个偏序集(L,≤),如果对于任意a,b∈L,L的子集{a, b}在L中都有一个最大下界(记为inf{a, b})和一个最小上界(记为sup{a, b}) 则称(L,≤)为一个格。 🔔 全序集是一个格,不是所有偏序集都是格. 是格: 不是格: 阅读全文
posted @ 2021-10-31 18:50 gonghr 阅读(5629) 评论(0) 推荐(1) 编辑
摘要: MySQL存储引擎 MySQL体系结构 体系结构的概念 任何一套系统当中,每个部件都能起到一定的作用! MySQL的体系结构 体系结构详解 客户端连接 支持接口:支持的客户端连接,例如C、Java、PHP等语言来连接MySQL数据库 第一层:网络连接层 连接池:管理、缓冲用户的连接,线程处理等需要缓 阅读全文
posted @ 2021-10-21 20:18 gonghr 阅读(625) 评论(2) 推荐(4) 编辑
摘要: MySQL存储过程和函数 存储过程和函数的概念 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合 存储过程和函数的好处 存储过程和函数可以重复使用,减轻开发人员的工作量。类似于java中方法可以多次调用 减少网络流量,存储过程和函数位于服务器上,调用的时候只需要传递名称和参数 阅读全文
posted @ 2021-10-17 08:30 gonghr 阅读(578) 评论(0) 推荐(1) 编辑