自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode.No11——盛水最多的容器

题目给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl...

2020-01-03 17:07:46 212

原创 LeetCode.No6——Z字形变换

题目将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。思路虽然题目说是Z字形,但我理解为N字形。看到题目时,第一时间想到的是递归,经过计算可发现规律,即每次递归时,第一个字符和第二个...

2020-01-01 16:35:44 203

原创 LeetCode.No5——最长回文子串

题目给定一个字符串 s,找到 s 中最长的回文子串之一即可。你可以假设 s 的最大长度为 1000。例1:输入:babad输出:“bab”注意:”aba“也为一个有效答案例2:输入:”cbbd“输出:”bb“解法看到题目时,一开始是没什么思路的,后来想到了每一个(或一对)字母,最为回文子串的中心时,最长回文子串是固定的,且不会重复。首先通过一个for循环开始判断,以...

2019-12-25 09:58:02 183

原创 LeetCode.No3——无重复字符的最长子串

题目给定一个字符串,找出其中不含有重复字符的最长子串的长度例:输入:“abcabcbb”输出:3解法一:暴力一开始看到这道题目的时候,很容易地想到了暴力解法,即从头开始进行扫描。算法步骤:从头到尾扫描一次s,用一个数组记录其中不同字符的总数量,存储总不同的字符数。从第 i (i从0开始)个字符开始扫描不存在重复时,则子串长度加一,j (子字符串的扫描指...

2019-12-24 22:32:03 132

原创 汇编语言(七)——高级汇编语言技术

宏汇编为了减少编程的工作量,通常采用的两种方法将程序段编为独立的子程序将程序段定义为宏格式:由伪指令MACRO和ENDM实现宏指令名 MACRO [形式参数表] ...; ...; ENDM(这里ENDM之前不用写宏名) 宏调用和宏展开宏调用格式: 宏指令名 [实参表]注意:1.宏定义必须放在宏调用之前。2.需要多个实参时,需用逗号分隔。3.实参可以为空...

2019-11-04 11:08:27 1459

原创 汇编语言(六)——子程序结构

子程序结构子程序的引出与定义写子程序的作用:简化源程序结构、节省目标程序的存储空间、提高程序设计的效率格式过程名 PROC [NEAR|FAR] ... RET过程名 ENDP过程名为符合语法的标识符NEAR属性:只能被相同代码段的其他程序调用FAR属性:可被相同代码段或不同代码段的程序调用1.主程序通常定义为FAR属性。子程序的调用与返回子程序调用:先将...

2019-11-01 16:19:32 2266

原创 汇编语言(五)——循环与分支程序

循环与分支程序控制转移指令三种程序构件顺序结构、分支结构、循环结构(WHILE、UNTIL)无条件转移指令JMP(跳转指令)1.段内直接短转移:JMP SHORT OPR(IP)《=(IP)+8位位移量2.段内直接近转移:JMP NEAR PTR OPR(IP)《=(IP)+16位位移量3.段内间接转移:JMP WORD PTR OPR(IP)《=(E...

2019-10-05 22:10:37 1376

原创 汇编语言(四)——8086/8088的指令系统

3.3 80x86的指令系统指令格式: 操作码 操作数ADD AL,10H操作码:指明CPU要执行什么样的操作,有以下几种数据传送算术运算逻辑运算串操作控制转移处理机控制操作数:指明参与操作的数据或数据所在的地方,操作数有以下三种来源。立即数操作数:操作数在指令中。 MOV AL,9寄存器操作数:操作数在寄存器中。 MOV AL,BL存...

2019-09-25 23:27:46 1159

原创 Java核心技术(一)——Java的基本程序设计结构

1.1 数据类型1.1.1整型int:4字节short:2字节long:8字节byte:1字节注意:Java无任何无符号整型。1.1.2浮点类型float:4字节(后缀F)double:8字节(后缀D或无后缀)1.1.3boolean类型falsetrue用于逻辑判定,整型值和布尔值之间不能进行相互转化1.2 变量1.2.1常量Java中用final指...

2019-09-24 15:13:44 140

原创 汇编语言(三)——汇编语言程序格式

4.1 汇编程序功能4.1.1 汇编语言程序的建立和汇编过程4.2 汇编语言程序格式4.2.1 汇编语言语句的基本格式一个汇编语言源程序中有3种基本语句:指令语句、伪指令语句和宏指令语句(宏指令语句就是由若干条指令语句形成的语句)指令语句:计算机中指令系统的各条指令,每条指令语句在汇编时都产生一个供CPU执行的机器目标代码。格式如下图:伪指令语句:指示汇编程序在汇编源程序时完成...

2019-09-13 11:38:27 2440

原创 汇编语言(二)——80x86指令系统和寻址方式

3.1 80x86的寻址方式寻址的概念汇编指令格式:操作码 [操作数1 [,操作数2 [,操作数3]]] [;注释 ]寻址、寻址方式的概念:寻址——寻找操作数的地址;寻址方式——寻找操作数地址的方法...

2019-09-07 16:35:57 938

原创 汇编语言(一)——80x86 计算机组织

1.1 80x86 微处理器计算机的主要组成:运算器、控制器、存储器和输入输出设备。运算器和控制器集成在一个芯片上,构成中央处理器(CPU)2.2基于微处理器的计算机系统构成2.2.1硬件四个主要组成部分:CPU、存储器、输入输出(I/O)子系统和系统总线系统总线把以上三个连接在一起CPU:核心部件,集成了运算器、控制器和寄存器组,执行程序指令,完成所有算术和逻辑运算及全机的...

2019-09-05 17:00:19 761

原创 命令行中的基本操作(基于Windows)

pwd:打印工作目录,即打印当前所在位置pwdhostname:计算机在网络中的名称hostnamemkdir:创建目录mkdir fillnamecd:更改目录,即当前所在的位置cd filenamecd filename\filename2cd ~ (此命令为回到home目录)cd … (此命令为回到上一级)cd … (此命令为回...

2019-08-20 16:10:49 805

原创 Python知识回顾(基于《笨方法学Python3》)——ex27-ex45

ex27——记住逻辑关系这一小节意在学会一些逻辑判断and | 与or | 或not | 非!= | 不等于== | 等于>= | 大于等于< = | 小于等于True | 真False | 假ex28——布尔表达式练习这一节是对ex27的巩固,意在增加对逻辑关系的理解ex29——if语句这一节是为了理解if语句的格式people = 20cats = ...

2019-08-13 22:00:09 373

原创 数据结构(十)——索引之静态索引和倒排索引

静态索引基本概念与术语输入顺序文件:按照记录进入系统的顺序存储记录,输入顺序文件相当于未排序的线性表主码:数据库中每条记录的唯一标识辅码:数据库中可以出现重复值的码(注意,主码是唯一的,就类似于一个名字可以对应很很多人,但是一个身份证号就只可对应一个人),辅码索引把一个辅码值与具有这个辅码值得每一条记录的主码值关联起来。索引:一个关键码与它对应的数据记录的位置相关联的过程索引文件:用...

2019-08-08 15:47:25 637

原创 数据结构(九)——外部排序之文件

基本概念文件的类型按记录的类型分类:操作系统文件,数据库文件(单关键字文件,多关键字文件)按记录长度分类:定长记录文件,不定长记录文件基本术语数据域(数据场):记录中的每个数据项,称之为域或场(Field)关键字:唯一标识记录的域,称之为关键字。辅助关键字,称之为次关键字。记录(Record):若干相关的数据项的集合。如果存之于外存,则叫做记录。文件:记录的集合。记录的物理...

2019-08-06 23:40:36 278

原创 数据结构(九)——外部排序之外排序

本博客基于对mooc中的《北京大学-数据结构与算法》及《西北大学-数据结构》的理解进行编写置换排序基于《西北大学-数据结构》置换排序的理解在这里,我们先假设:1.输入文件FI为:21,11,09,02,16,31,20,01,27,05,13,28 。2.工作区WA 容量m = 3 。3.输出文件为FO首先,我们从 FI 中读取三个数据进入 WA 。分别是 21,11,09选取 WA ...

2019-08-06 11:42:44 678

原创 数据结构(九)——外部排序之硬件部分

本博客基于对mooc中的《北京大学-数据结构与算法》及《西北大学-数据结构》的理解进行编写内存和外存之间的比较内存优点:访问速度快缺点:造价高,存储容量小,断电丢数据外存优点:价格低、信息不易丢失、便携带缺点:速度慢访问一个字节,访问内存(纳秒)和访问外存(毫秒),量级差别为100万倍,故涉及到外存的排序应尽量减少外存的访问次数硬件介绍部分磁盘磁盘的物理结构:主轴...

2019-08-05 16:32:48 240

原创 数据结构(八)——内部排序之桶排序和基数排序

桶排序的概述重要的参数a【】:作为桶的数组count【】:记录前若干个桶的累计基本思想首先进行一次扫描,知道了所要排的数据的最小值和最大值(即位于哪个区间)通过知道的区间设立桶的个数,每个桶对应一个值首先扫描一边,利用count【】记录桶中每个数据出现的次数(第一次对count【】操作)将count【】数组的元素从头开始向后累加(第二次对count【】操作)...

2019-08-02 21:15:14 242

原创 数据结构(八)——内部排序之归并排序

归并排序的概述将n个记录看成是n个长度为1的有序子表;将两两相邻的有序子表进行归并,若子 表数为奇数,则留下的一个子表直接进入下一 次归并;重复步骤(2),直到归并成一个长度为n 的有序表归并排序重要参数a【】:存储来的数据b【】:归并排序的辅助数组min:输入排序序列的起始位置max:输入排序序列的终点位置mid:将要排序序列的中间值p:从mid位置开始向后扫的一个指...

2019-08-02 19:49:40 301

原创 数据结构实验——就餐人数最多的时间段

题目描述学校要举办校庆晚宴,要求学生登记就餐时间,以确定在哪个时间段内就餐的学生数最多,从而调食品的供应量。就餐时间被分为了 N 个时间段,其中 N 可能会非常大,可以假 设 N 为 1 亿,也就是 100000000(这要求程序不能声明长度为 N 的数组或定义 N 个变量), 若未考虑此情况则不能得分。要求:排序算法的平均时间复杂度不得大于 O(MlogM)。先输入两个数字 N,M,表示就...

2019-08-01 22:30:09 3352 11

原创 数据结构实验——荷兰国旗问题(三色排列)

问题描述输入一个整型数组,整数取值 0,1,2,可以重复。输出排序后的结果。 要求设计一个排序算法,常数辅助空间和一遍扫描。示例 1:输入: 0 1 0 1 2 0 1 0 1 0 2 2 0 1输出: 0 0 0 0 0 0 1 1 1 1 1 2 2 2示例 2:输入: 1 0 2 0 1 1 2 0 2 1输出: 0 0 0 1 1 1 1 2 2 2问题分析...

2019-08-01 21:06:42 720

原创 数据结构实验——最大数

题目描述给定一组非负整数(每个非负整数大小为 0-1000),重新排列它们的顺序使之按照下标顺序输出后组成一个最大的整数。示例 1:输入: 10 2输出: 210示例 2:输入: 3 30 34 5 9输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数题目分析通过分析我们可以知道,最后得到的结果是直接输出一个数组。首先,由于要确定最大数,...

2019-08-01 20:51:01 325

原创 数据结构(八)——内部排序之堆排序

代码中所用到的结构体typedef struct heaptype{ int elem[MAX+1];//0位空着 int length;}Heaptype;堆排序的基本概念堆排序属于选择排序:出发点是利用前一次比 较的结果,减少“比较”的次数小根堆:1.对于任意一个非叶结点的关键字,都不大于其左、右儿子 结点的关键字。2.在堆中,以任意结点为根的子树仍然是堆。特别...

2019-08-01 19:56:19 308

原创 数据结构(八)——内部排序之快速排序

快速排序的概述快排类似于冒泡排序快排的步骤大致分为三步:第一步:选取枢轴。第二步:以枢轴为中间值,对未知的数据进行排序。将小于枢轴的数据置于枢轴的左边,大于枢轴的数据置于枢轴的右边。对枢轴两边的数据进行递归,当数据小于等于2时,进行返回。第一步:选取枢轴枢轴的选取有多种方法:1.直接选取未知元素序列的第一个的值作为枢轴2.生成随机数,取位置为随机数的值作为枢轴3.取中间的值...

2019-07-31 22:05:42 256

原创 数据结构(八)——内部排序之希尔排序

希尔排序的思想对待排记录序列先作“宏观”调整, 再作“微观”调整所谓“宏观”调整,指的是,“跳 跃式” 的插入排序希尔排序的概述将待排序的序列分成若干个子序列,分别对每个子序列进行插入排序例如:首先进行间隔为5的排序(即从第一个开始,每隔5个元素进行取一个元素,将这些元素进行插入排序,排序完后从第二个元素开始,照上做法进行排序,直到全部排序完成)再将间隔取5改为取间隔为3,再如上...

2019-07-31 15:50:38 203

原创 数据结构(八)——内部排序之表排序

表排序的适用情况待排序的元素庞大(例如要排序多部电影),这个时候可以通过间接排序的方法进行排序,即只需要在排序的时候改变元素的指针所指向的位置即可,这个时候可以运用表排序。代码中所运用到的结构体typedef struct{ int elem;//待排元素 int pos;//待排元素的指针}SLNode;//一个结点typedef struct{ SLNo...

2019-07-31 15:37:18 469

转载 数据结构(七)——查找之哈希表

基本概念哈希函数:又叫散列函数,在关键字与记录在表中的存储位置之间建立一个函数关系,以 H(key) 作为关键字为 key 的记录在表中的位置,通常称这个函数 H(key) 为哈希函数。哈希地址:由哈希函数得到的存储位置称为哈希地址装填因子:设散列表空间大小为n,填入表中的结点 数为m,则称a=m/n为散列表的装填因子。冲突(Collision)与同义词: 若H(k1)=H(k2),则...

2019-07-29 16:26:11 260

原创 数据结构(七)——查找之B-树和B+树

基本概念m阶B树的结构定义每个结点至多有m个子结点除根结点和叶结点外,其他每个结点至少有【m/2】个子结点根结点至少有两个子结点:唯一例外的是根结点就是叶结点时没有子结点、此时B树只包含一个结点。所有的叶结点在同一层有k个子结点的非根结点恰好包含k-1个关键码B树的性质树高平衡,所有叶结点都在同一层关键码没有重复,父结点中的关键码是其子结点的分界B树吧(值接近)相关记录放...

2019-07-29 15:32:25 236

原创 数据结构(七)——查找之平衡二叉树

代码中所用到的结构体typedef struct node{ int key;//关键字 struct node*left; struct node*right; int height;//当前结点所在的高度}BTNode;构造平衡二叉树算法的主要思想为了提高查找的效率,于是在二叉排序树的基础上,有了二叉平衡树的诞生。其中,先介绍几个重要的概念:平衡...

2019-07-12 17:12:27 418

原创 Python基本知识回顾(基于《“笨方法”学Python3》——ex1-ex22)

print(“要打印的文本”)或print(‘要打印的文本’)程序中的注释使用的是#整行快捷注释‘#’整行快捷取消注释‘#’print()中可以直接进行计算,但不可加“”变量和打印print(f"He’s {变量的名字} manager")浮点数的四舍五入函数:round() ,如 round(1.7333)字符串和文本例:w = "abc"e = "def"print...

2019-07-11 20:25:04 211

原创 数据结构(七)——查找之二叉排序树

代码中所用到的结构体typedef struct Node{ int elem;//存放数据 struct Node *lchild, *rchild; struct Node *prev;} TreeNode, *BiTree; //定义树节点的结构体typedef struct tree{ BiTree root;}Tree,*pTree;构造二...

2019-07-06 15:31:37 233

原创 数据结构(七)——查找之静态查找表

顺序表的查找从前往后找从第一个开始进行判断,对表中的元素和要查找的元素一一对应但是在判断元素是否相等的同时,也要对其增加一个 if 语句的判断,用于判断是否已经检索到了表尾但在顺序表的查找中一般是一定查找地到的,而且 if 判断语句又浪费了近一半的时间,故改进了算法的查找方式从后往前找首先要知道这种方式检索的顺序表的表头是空的。从表尾的最后一个判断,在表头设置一个和即将要检索的...

2019-07-05 16:16:57 297

原创 数据结构(六)——图之最短路径

代码中所用到的结构体typedef struct arccell{ int adj;//权值 char *info;}ArcCell,AdjMatrix[MAX][MAX];typedef struct{ int vexs[MAX];//结点数据 AdjMatrix arcs; int vexnum,arcnum;//图的点数和边数 Gr...

2019-07-04 15:47:15 568

原创 数据结构(六)——图之关键路径

代码中所用到的结构体typedef struct arcnode{ int weight;//权重 int adjvex;//指向的下一个顶点 struct arcnode *next;//指向这个点的另一条边}Arcnode,*pArcnode;typedef struct vnode{ pArcnode firstarc;//点所指向的第一条边}V...

2019-07-02 21:26:03 458

原创 数据结构(六)——图之最小生成树Prim和Kruskal算法

代码中所用到的结构体typedef struct arcnode{ int weight;//边的权重 int adjvex;//指向的下一个顶点 struct arcnode *next;//指向这个点的另一条边}Arcnode,*pArcnode;typedef struct vnode{ pArcnode firstarc;//点所指向的第一条边...

2019-07-02 20:45:04 352 2

原创 数据结构(六)——图之DFS和BFS遍历

代码中所用到的结构体typedef struct arcnode{ int adjvex;//指向的下一个顶点 struct arcnode *next;//指向这个点的另一条边}Arcnode,*pArcnode;typedef struct vnode{ pArcnode firstarc;//点所指向的第一条边}Vnode,AdjList[30];t...

2019-07-02 20:00:38 779

原创 数据结构(六)——图

图的定义和术语弧头–弧尾–弧--有向图边–无向图–网--子图完全图–稀释图–稠密图假设图中有n个顶点,e条边:1.含有e=n(n-1)/2条边的无向图称作完全图; 2.含有e=n(n-1)条弧的有向图称作有向完全图; 3.若边或弧的个数e<nlog2n,则称作稀疏图, 否则称作稠密图。邻接点–度--入度–出度路径–路径长度–简单路径–简单回路:1.路径上边的数目称作路径长度;2....

2019-06-29 10:54:34 560

原创 数据结构(五)——树和二叉树之Huffman编码

定义的结构体typedef struct node{ char elem; float weight; int loc; int lch,rch,parent;}Node;计算字符串中的权重没什么技巧,直接计算int CalculateWeight(char a[],char b[],float weight[]){ int i=0,j;...

2019-06-29 10:23:46 237

原创 数据结构(五)——树和二叉树之二叉树遍历、先序和中序构建二叉树、二叉树的的结构对称判断

代码中所用到的结构体定义typedef struct Node{ char ch;//存放数据 struct Node *lchild, *rchild; struct Node *next;} TreeNode, *BiTree; //定义树节点的结构体二叉树的交互式建立及二叉树的三种遍历二叉树的交互式建立二叉树的交互式建立运用了递归的算法,以先输入数据,...

2019-06-27 20:52:00 456

空空如也

空空如也

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

TA关注的人

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