自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 AUTOPHASE:在随机森林中用深度强化学习来处理HLS Phase Ordering问题 --论文翻译

编译器生成的代码的性能取决于它应用优化pass的顺序。选择一个好的顺序–通常被称为phase-odering问题,是一个NP-hard问题。因此,现有的解决方案依赖于各种启发式方法。在本文中,我们评估了一种解决phase-ordering问题的新技术:深度强化学习。为此,我们实现了AutoPhase:一个框架,它采用一个程序,并使用深度强化学习来寻找一个最小化其执行时间的编译pass。在不丧失通用性的前提下,我们在LLVM编译器工具链的背景下构建了这个框架,并以高级合成程序为目标。

2023-04-15 21:18:02 496

原创 编译原理-自顶向下分析法思路梳理

编译原理-自顶向下LL(1)思路梳理

2022-06-05 14:47:51 272

原创 git命令备忘录

git命令备忘录

2022-06-01 17:12:26 151

原创 利用mmap将任意大小的磁盘文件复制到stdout

mmap为虚拟内存映射函数#include <unistd.h>#include <sys/mman.h>void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);例程:#include <unistd.h>#include <sys/mman.h>#include <sys/types.h>#include <sys/

2022-05-06 09:01:34 267

转载 Linux进程如何切换上下文

进程切换上下文需要那些操作呢?保存当前进程的上下文恢复某个先前被抢占的进程被保存的上下文将控制传递给这个新恢复的进程。具体:进程地址空间指的是进程所拥有的虚拟地址空间,而这个地址空间是假的,是linux内核通过数据结构来描述出来的,从而使得每一个进程都感觉到自己拥有整个内存的假象,cpu访问的指令和数据最终会落实到实际的物理地址,对用进程而言通过缺页异常来分配和建立页表映射。进程地址空间内有进程运行的指令和数据,因此到调度器从其他进程重新切换到我的时候,为了保证当前进程访问的虚拟地址是自己的必

2022-04-08 18:16:24 101

原创 SVM学习笔记

注:本文通过问题与回答(Q&A)为线索来梳理SVM相关内容看到SVM(Support Vector Machines)这个单词,就会产生几个问题:Q1:什么是支持向量(support vector)?A1:如图所示:支持向量就是两个虚线上的点。(点就是向量)从图中还可以看出,SVM是用来解决线性可分的二分类问题。其中,虚线上的点距离直线(n维中的超平面)的距离叫margin。Q1.1:什么是线性可分?A1.1:线性可分:  直观上看,二维空间中两类点被一条直线分开。  N维

2022-04-07 21:28:34 321

原创 程序员的自我修养——TinyHelloWorld小程序报错

如果按照书中的代码在x64下编译会出错,如下:TinyHelloWorld.c: Assembler messages:TinyHelloWorld.c:6: Error: unsupported instruction `mov'解决方法:X64下的内联汇编避坑之“mov报错?”正如博文中所说,这中兼容问题就是ABI的劣势...

2022-04-04 17:48:21 262

原创 动态规划的本质

近来学习dp,越来越感觉dp像自动机,终于看到了相似的理解了!!!大统一论者感觉极度舒适。传送门----->动态规划的本质

2022-03-26 11:11:13 80

原创 KMP思想简述

首先推荐matrix的博文KMP博文 我们如何在一个输入字符串中匹配一个模式串呢? 首先,我们可能想到最简单的方法: string S; // 假设 S的长度为m string pattern; // 假设 pattern的长度为n int i = 0, j = 0; while ( 1 ) { if (S[j+i] == pattern[j]) j++; e

2022-03-25 22:31:25 137

原创 数据库复习知识点纲要

数据库原理第一章 绪论(考填空和简答)一、概念与术语 1、数据 2、数据库 3、数据库管理系统(DBMS) DBMS的功能:对数据统一管理和控制的软件系统(考点) (1)数据库定义功能 (2)数据库操纵功能 (3)数据库运行控制功能 (4)数据通信功能 (5)支持存取海量数据 4、数据库系统的构成 (1)数据库 (2)数据库管理系统 (3)数据库应用(application) (4)数据库管理员 (5)计算机系统平台:硬件 二、数

2022-01-06 13:53:34 750

原创 计算机体系结构复习纲要

体系结构第一章 计算机系统结构的基本概念一、计算机系统结构 系统结构的概念 计算机系统结构的概念 计算机系统结构、组成、实现的区别二、计算机层次结构 6级 (考图) 透明性:本来存在的事物或属性,在某种角度看好像不存在了一样三、弗林分类法(考) 指令流、数据流、多倍性 SISD、SIMD、MISD、MIMD四、计算机系统的设计原则 1、加速那些使用频率高的部件,提高整个计算机的性能 2、Amdahl定律 Amdahl定律 加速比的计算 SP = Te/T0 =

2022-01-04 11:17:29 469

原创 操作系统文件系统难题解析

(1) 分析题目信息: 根目录常驻内存:内存中有A,B,...,C的地址 目录文件采用链接结构,每个目录下最多存放60个文件或目录。每个磁盘块最多存10个文件目录项: 目录文件最多有6个磁盘块,链表式存储。 如果下级文件是目录文件,则上级文件目录项指向该目录文件的第一个地址:上级目录项中存储下级 目录的第一个盘块的地址 假设目录结构中文件或子目录按自左向右的次序排列:按照图中的次序排列。 ...表示可能存在任何多个的文件或目录 最多: 在内存中找到A.

2021-12-28 20:59:01 995

原创 操作系统知识点纲要

第一章 操作系统的简介一、概念 1、操作系统的定义: 对上层负责:是控制应用程序执行的程序 对下层负责:资源管理器 2、操作系统的地位 二、发展历史 无->单道批处理->多道批处理->分时系统->多样的OS 三、功能 处理器管理的功能 存储器管理的功能 设备管理的功能 文件管理的功能 用户接口 四、结构 整体化结构 模块化结构 层次化结构 微内核结构 内核特征:并发、共享、虚拟、异步 五、运行环境 CPU状态/模式 中断系统

2021-12-28 17:50:13 313

原创 启发图搜索-A*算法,看完包懂包会

看完下面四篇文章,启发式搜索必懂。1234

2021-12-11 11:22:07 396

原创 图的相关算法实现

#include <iostream>#include <vector>#include <utility>#include "DSU.hpp"#include "MinHeap.hpp"#include <algorithm>using namespace std;const int maxVertexNum = 20;const int maxEdgeNum = 200;const int INF = 65535;const

2021-06-21 20:22:10 108

原创 数据结构知识点概要(北大张铭版)

第六章 树树的定义递归定义,子树的概念。或二元关系前驱后继定义度的概念:结点子树的数目注意:度为2的树不是二叉树,因为树不区分左右儿子,但是二叉树区分左右儿子森林的概念:很多棵树森林与二叉树的等价转化左子右兄法、或者“连线,切线,旋转”法树的抽象数据类型(略)树的周游深度优先周游森林:先根:根左右(方法类似二叉树的先序)(森林对应的二叉树的前序遍历的结果)代码对森林转换的二叉树处理,类似前序后根:左右根(方法类似二叉树的后序)(森林对应的二叉树的中序遍历的结果)代码对森林转换的二

2021-06-07 20:40:35 996 1

转载 printf(“%02x\n“, c) 之坑

转载#include <stdio.h> int main(){ char c1 = -1; printf("%02x\n", c1); // ffffffff char c2 = 250; printf("%02x\n", c2); // fffffffa printf("heheda\n"); unsigned char c3 = -1; printf("%02x\n", c3); // ff unsigned char c4 = 250; prin

2021-05-16 20:52:31 335

原创 c语言写cpu

#include <stdio.h>char ram[0x1000]; //内存32kb,char型1个byte,8个bit //0-16383 为代码段 //16384-32767 为数据段short ip = 0; //ip16位可以c寻址32k内存空间short ir = 0; //指令寄存器int flag = 0;//8个16位寄存器组short ax0 = 0;short ax1 = 0;sho

2021-05-13 20:51:19 887

原创 汇编包括排序,子程序等

OUTPUTASTR MACRO STRADDR ; PUSH AX PUSH DX LEA DX, STRADDR MOV AH, 9 INT 21H POP DX POP AX ENDMINPUTASTR MACRO SADDR PUSH DX PUSH AX LEA DX, SADDR MOV AH, 0AH INT 21H POP AX POP DX ENDMDATAS SEGMENT CUE1 db "Please input a string(les

2021-04-12 23:06:29 251

原创 表达式求值(c++,符号栈+数字栈)

问题:输入前缀表达式,输出计算结果分析:1.输入:对应infixExp的input函数,要保证能接受多位十进制数,我选用cin.peek()函数,对输入流中的下一个字符先peek,分类讨论,如果是符号,用cin输入一个数;如果是数字,再peek下一个字符,直到符号为止。存储形式:如果要让符号和数字都在一个vector中存储,就需要自己编写一个类型,可以分别容纳符号和数字,对应MyNum类。2.前缀转后缀:对应infixExp::toPostfixExp()函数,维护一个符号栈,根据符号的优先级,来维

2021-03-30 14:00:05 668

原创 汇编上机下

题目三:键盘输入两个四位十六进制数;1)将这两个数以二进制形式输出 2)找出这两个数中的偶数,若有则以十进制输出,若无,输出“NO”。注意:寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、 除、输入/输出等操作,它们的使用频率很高; 寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作 中,当移多位时

2021-03-29 23:05:47 279 1

原创 汇编上机题(上)

题目一:编写一程序,比较两个字符串所含字符是否相等,如果相等,在屏幕上显示“Y”,反之显示“N”。DATAS SEGMENT CUE1 DB 'PLEASE INPUT A STRING:$' CUE2 DB 'PLEASE INPUT ANOTHER STRING:$' BUFF1 DB 10H DUP('$') BUFF2 DB 10H DUP('$') NEWLINE DB 13,10,'$'DATAS ENDSSTACKS SEGMENTSTACKS

2021-03-29 22:53:32 296

原创 More Effective C++笔记

item 1:pointers 和references的区别:1.pointers 不必赋初值,可以指向NULL。references必须赋初值,因为引用是匿名,在初始化的时候必须指名是引用的对象。因此,如何指向(代表)的对象可以为空,选指针;不为空,选引用。2.pointers可以被重新赋值,references不可以被重新赋值。3.重载操作符时,必须返回对象时,用references。例如:<<,[]等结论:当知道需要指向某个东西,而且绝不会改变其他东西,或是实现一个操作符而其语法

2021-03-28 20:05:29 152

原创 二叉树相关习题

6、利用递归函数返回一棵二叉树的高度:14.用递归方式,在二叉搜索树中查找key值 bool search( BinaryTree<T>* root, T k) { if( root == NULL) return false; if (root->value == k) return true; return search( root->lChild) || search( root -> rChild);}16.打印出BST中介

2021-03-28 11:27:25 87

原创 汇编串操作指令

首先有两个buf,存放两个字符串让SI存buf1, DI存buf2由于SI的段基址是DS, DI的段基址是ES所以在比较字符串的时候,我们让ES和DS端重合即可对于字符串的输入问题:让AH = 0AH DX = 串首址CLD:让DF为0,即字符串指针增加方向。然后让SI与DI朝DF的方向自增1个字节STD:让DF为1, 即字符串指针减小方向。然后让SI与DI朝DF方向自减一个字节1.使用串处理时(比如串比较),一定要写MOV ES,AX;附加段与数据段为同一段ES附加段寄存器,用于指出存

2021-03-21 21:47:31 647

原创 栈与队列相关习题

题目:用一个数组表示队列,只有front指针,没有rear指针,用count计数,实现pop操作。template <class T>class Queue { private: int count; T *front; public: Queue(int m = 0); ~Queue(); bool pop();};Queue<T>::Queue(int m = 0) { count = 0; m && front = new

2021-03-15 15:25:02 101

原创 张铭版《数据结构》第二章线性表部分习题

题目:设线性表中的数据元素以值递增排列,并以单链表作为存储结构。设计一个高效的算法,删除表中所有值大于min且小于max的元素,同时释放被删除节点的空间,并分析算法的时间复杂度。分析:单链表已经递增排好序,依次从表头到表尾遍历一遍找到min(如果没有min元素就找小于min的第一个元素)和max(同理,如果没有max元素,就找比max大的第一个元素),把中间都删除保证链表完整即可。对于最差情况,min在链表的最右端,即链表中元素都比min小,需要完整遍历整个链表。需要n次比较。对于最优情况,max

2021-03-14 17:23:24 647

原创 约瑟夫问题(小小算法,真不可笑)

数据结构课的一道作业题如下:设有n个人围坐在圆桌周围(圆桌会议?),现从第s个人开始报数,数到第m的人出列。(哈,不就是约瑟夫问题吗,这人一定死了!)然后从出列的下一个人开始重新报数,数到m的人又出列,以此类推......所以约瑟夫站在哪个位置才能不死呢?这是后话。先来看看约瑟夫问题的由来。这是以夫拉维·约瑟夫(他是公元一世纪时著名历史学家,如果不是他的数学天赋,他是不会活到那一天的)命名的问题。在犹太罗马战争期间,他们41名犹太反抗者困在了罗马人包围的洞穴中。这些反抗者宁愿自杀也不愿被活捉,于是决

2021-03-06 15:01:21 481 1

原创 小小算法,可笑可笑——摩尔投票法(集万家之长)

摩尔投票法:

2021-03-03 23:17:38 251 2

转载 c语言一定从main函数开始执行吗?

快看这里

2021-02-02 22:58:08 1575 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除