- 博客(32)
- 收藏
- 关注
原创 《数据结构》学习系列——排序(下)
系列文章目录目录思想对待排序的文件进行n次选择,其中第i次选择第i小(大)的记录放在第i(n-i+1)个位置上算法直接选择排序思想:例如,第i趟比较(i=1,…,n−1)在前面n−i+1个待排序记录中选出关键词最大的记录,作为有序记录序列的第n−i+1个记录。待到第n−1趟作完,待排序记录只剩下1个时,算法结束算法分析直接选择排序的关键词比较次数与记录的初始排列无关。假定整个待排序文件有nnn个记录,第iii趟选择具有最大关键词的记录所需的比较总次数是n−in-in−i次。因此,总的关键词比较次数为
2024-11-27 17:07:12
1155
原创 《数据结构》学习系列——图(下)
从一个指定顶点到达另一个指定顶点的路径上各边权值之和为最小的路径被称为最短路径,这类问题亦称为最短路径问题。上式每迭代一次,从顶点到顶点之间的最短路径就多考虑一个中间顶点。也是走的最短路径 -> 用不同的中间结点的最短路径。的值就是从顶点到顶点之间的最短路径长度。出发到达其他城市至少要经过几条路线?出发到达其他城市的最短路线有多长?出发经过 1 条路径可到达。出发经过 2 条路径可到达。出发经过 3 条路径可到达。记到达某个城市的路径条数为。出发经过 0 条路径是。,中间顶点的序号不大于。
2024-11-26 20:19:32
1253
原创 《数据结构》学习系列——图(中)
在 AOV 网络中,如果活动ViV_iVi必须在活动VjV_jVj之前进行,则存在有向边⟨ViVj⟩⟨ViVj⟩AOV 网络中不能出现有向回路,即有向环。在 AOV 网络中如果出现了有向环,则意味着某项活动应以自己作为先决条件。因此,对给定的 AOV 网络,必须先判断它是否存在有向环拓扑序列:AOV 网中所有顶点排成的线性序列,要求每个活动的所有前驱活动都排在该活动前面拓扑排序:构造 AOV 网的拓扑序列的过程被称为拓扑排序。
2024-11-24 23:38:42
1325
原创 《数据结构》学习系列——图(上)
定义 图G由图G由两个集合V和E组成,记为G=(V,E);其中v是顶点的有穷非空集合,E是连接v中两个不同顶点的边的有穷集合。通常,也将图G的顶点集和边集分别记为V(G)和E(G)若图中的边限定为从一个顶点指向另一个顶点,则称此图为有向图若图中的边无方向性,则称之为无向图定义 若G=(V,E)是有向图,则它的一条有向边是由v中两个顶点构成的有序对,亦称为弧,记为<w,v>,其中w是边的始点,又称弧尾;v是边的终点,又称弧头由于E是边的集合,故一个图中不会多次出现一条边。
2024-11-20 16:51:36
1885
原创 《数据结构》学习系列——排序(上)
该方法可以看作插入排序的改进,其与插入排序的不同之处在于:Hoare 的快速排序方法把控制分划过程的关键词。希尔排序性能的分析: Shell 算法的性能与所选取的分组长度序列有很大关系。需要的关键词比较次数与待排序记录序列的初始排列无关,仅依赖于记录个数。自下而上(或从左到右)比较相邻记录的关键词,交换存在逆序的记录(若。,非相邻的(与冒泡排序相比)记录交换使得文件中的反序对数目减少得更多。对半插入排序的记录移动次数与直接插入排序相同,依赖于对象的初始排列。,从而得到一个新的、记录数增加1的有序表。
2024-11-20 13:32:56
1028
原创 《计算机原理与系统结构》学习系列——存储器(上)
例如,当一个处理器启动时,cache中没有数据,标记域中的值没有意义。因此,在cache中,这些块的标记应该被忽略。对于全相联映射,比较标记位的开销太大,有一种折中的办法,对cache进行分组,一个内存块直接映射到一个组。替换是,选择最近最少使用(LRU),我们可以用1位编号记录2路组相联一组中最久没用的块,用2位来编号记录4路组相联,以此类推,这个编号称为。程序在某一时间真正需要的指令/数据往往只占整个程序内存空间的一小部分,并且程序在使用一个指令/数据字的时候,即将使用的指令/数据通常在。
2024-11-09 18:32:46
890
原创 《计算机原理与系统结构》学习系列——处理器(下)
分支指令beq在MEM级才能决定是否分支,此前beq后的三条指令都已被取到流水线分支成功执行了,分支失败才应该执行的指令就产生了分支冒险,的策略,执行那些紧跟在beq后的指令,跳过分支,如果预测失败不产生额外开销,且预测成功率能达到50%,就能减少减少50%的分支冒险开销。如果beq上一条指令是R型指令,且需要比较R型指令的运算结果,则在R型ALU结果旁路到IF/ID寄存器的基础上,还需要将beq指令。下一条指令使用lw的目标寄存器rt时,访存读出的数据在MEM级才产生,尝试添加旁路,发现。
2024-11-03 14:08:07
769
原创 《计算机原理与系统结构》学习系列——处理器(中)
单周期实现中,任一时刻只有部分硬件在运行将指令执行分散在五个周期,每个周期只执行一个阶段,这样的方法对于效能浪费大指令1进入ID周期后,指令2可以使用IF部分硬件指令1进入EX周期后,指令2可以使用ID部分硬件…与指令周期五个阶段相对应,把数据通路分为五个流水级,形成流水线。
2024-10-27 12:36:31
1245
原创 《数据结构》学习系列——树(下)
为了使问题的处理更为方便,每当原二叉树中出现空子树时,就增加特殊的结点——空树叶,由此生成的二叉树称为扩充二叉树。
2024-10-24 20:18:29
1017
原创 洛谷刷题 P1009 [NOIP1998 普及组] 阶乘之和
比如,我们用字符串记录1234这个数字时,我们会构造一个char 数组 listA,然后令listA [0] = ‘4’,listA [1] = ‘3’,listA [2] = ‘2’,listA [3] = ‘1’,此时我们是按反方向存储了1234,至于为何,接下来会说明,接着我们用相同方式,用listB存储9876。在这道题中,我们的阶乘可以从上一个阶乘结果基础上乘一个int类型数得到,主要思想与加法类似,就是高精度的每位乘上乘数加上上一位的进位,得到result对应位数上的数字。
2024-10-22 15:01:02
394
原创 洛谷刷题 P1008 [NOIP1998 普及组] 三连击
因为要求三个三位数构成的比例是1:2:3,因此最小的那个数的百位只能在1、2、3选择,这样大大缩小了枚举范围,因此我们可以通过对最小数字的枚举。此题主要采取枚举的思想,但是直接暴力枚举会导致时间不够,因此我们先进行分析。
2024-10-21 20:29:00
229
原创 洛谷刷题 P1003 [NOIP2011 提高组] 铺地毯
该题主要考察模拟思想,可以用二维数组来模拟表示地面,每个坐标点记录其最上层地毯,然后每输入一张地毯数据就对地面相应坐标点进行修改,最后读取目标地点的状态,但是这样会超过题目要求的空间限制。所以,转换思维,用二维数组去记录所有地毯的信息,然后从后往前遍历,找到能覆盖到目标的地毯并输出。
2024-10-21 18:48:11
293
原创 《计算机原理与系统结构》学习系列——处理器(上)
使用这个MIPS子集可以说明建立数据通路和控制单元的关键原理,和其他体系结构是相通的。ALU可以执行加add、减sub、与AND、或OR、小于则置位slt五种运算,(MUX)从多个数据中选择一个作为输出,选择哪个数据取决于选择控制信号。MEM访存分支任务:访存指令向寄存器进行读写,分支指令完成分支。(共九位),由Op与funct翻译而成(最后包含funct)将操作码(Op,不包括funct)翻译成。第五阶段,R型指令将运算结果写回。分析分支指令beq使用的控制信号。指令周期第二阶段的指令译码,就是。
2024-10-20 17:02:02
1827
原创 机器学习理论系列——线性模型(上)
系列文章目录文章目录 线性模型线性回归线性回归与线性模型一元和多元线性回归最小二乘法损失函数与均方误差最小二乘与闭式解正则化为什么引入正则化L1L^1L1,L2L^2L2正则化梯度下降什么是梯度下降算法上的体现附录 线性模型线性是数学中的基本概念,即两个变量按照一定比例增加或减少,用数学符号表达就是y=ax+b{y = ax+b}y=ax+b。在机器学习中,线性模型(Linear Model)就是试图通过数据学得一个x的线性组合来预测y(下式也称线性模型基本型)y^=w1x1+w2x
2024-10-18 10:01:14
1404
原创 《数据结构》学习系列——树(中)
通过遍历二叉树可得到一个结点的一个线性序列,在线性序列中,除第一个结点外, 每个结点有且仅有一个前驱,除最后一个结点外,每个结点有且仅有一个后继,但是在二叉树中只能找到结点的左孩子、右孩子,结点在线性序列中的前驱和后继只有在遍历过程中才能得到为了与结点在二叉树中所具有的前驱(即父结点)和后继(即子结点)区别开来,通常把某种序列中结点的前驱或后继冠以某种遍历的名称,如把中根序列中结点的前驱称作中根前驱,结点的后继称作中根后继设 T是由增加某种遍历顺序的线索域的结点所构成的一棵二叉树,在 T。
2024-10-17 19:51:36
1305
原创 洛谷刷题 P1067 [NOIP2009 普及组] 多项式输出
该题主要考察能否想到所有输入的情况,即对系数和次方为特殊值时进行讨论,如系数是±1,0时,次方是n和1时的系数情况,以及0次方,下面是所有特殊情况,以次方数为主元分类。
2024-10-05 22:33:55
411
原创 洛谷刷题 P1042 [NOIP2003 普及组] 乒乓球
接着我们对二维数据循环访问处理数据,对11制和21制一轮结束情况做讨论,注意if,else if的使用(是并行情况还是多选一情况)那么数据存储我们可以用C++的vector<char>,或者string,如果是C则需要用链表或者足够大的数组存储。该题主要考察如何模拟这个输赢的过程,其实就是考察字符串数据读取和处理,以及各种情况的总和处理,也就是。对于比分数据,我们可以使用C++中的pair数据类型。
2024-10-05 22:06:36
451
原创 《计算机原理与系统结构》学习系列——计算机的算数运算(下)
为了表示非整数实数,现在的计算机广泛采用小数点浮动的浮点数,以-0.75为例子,首先转化为二进制实数,然后将二进制实数表示为以2为基数的科学计数法,我们常用sll实现乘二的幂,但是用srl实现除二的幂会出现问题,对于无符号数是相同的,但是对于有符号,算数右移需要补入符号位才相同,如果补零则不同。8位指数可以表示0~255共256个自然数,但是只有1~254表示真正的浮点数,为了方便比较大小,浮点数的指数域采用一种类似于。程序通常不会在浮点寄存器上进行整数操作,或在整数寄存器上进行浮点操作。
2024-10-05 00:23:32
1160
原创 《计算机原理与系统结构》学习系列——计算机的算数运算(上)
一、计算机概要与技术二、指令:计算机的语言(上)三、指令:计算机的语言(中)四、指令:计算机的语言(下)五、计算机的算数运算(上) ALU功能:对a,b(0,1)完成上图为一位ALU,32个一位ALU组合成为32位ALU。低位的进位输出指向高位的进位输入,最低位的进位输入用于控制减法,这种直接连接1位进位的加法器称为行波进位加法器进位速度制约了加法的速度,32位ALU的行波进位方式在每次进位时都要通过与门、或门各一次,共产生64个门延迟使用超前进位加法器,通过将进位分成4位一组,抽象成每组进位,实现加法器的
2024-10-04 16:32:40
1357
原创 《数据结构》学习系列——树(上)
一个树(或树形)就是一个有限非空的结点集合T,其中:有一个特别标出的被称为该树(或树形)之根root(T)的结点其余结点 (根除外)被分成m≥0个不相交的集合T1,T2,...,Tm,且T1,T2,...,Tm又都是树(或树形)。树(或树形)T1,T2,...,Tm被称作root(T)的子树(或子树形(非递归定义)定义:树是包含n(n≥1)个结点且满足如下条件的有限集合存在一个唯一的结点v0,它没有前驱结点,称为树的根(或根结点)任何非根结点都有且仅有前驱节点,称为该节点的父结点。
2024-10-01 14:49:14
983
原创 《数据结构》学习——字符串
串的定义:串是由零个或多个字符顺序排列组成的有限序列如字符串S可记作:S=“a0a1...an-1”S是串名,引号中的字符序列是串值,字符个数n是串长度长度为零的串称为空串空白串:由一个或多个空格组成的串称为空白串子串:某串中任意个连续字符组成的序列称为该串的子串,相对于子串它又被称作主串子串在主串中第一次出现时,其首字符在主串中的序号被称为该字串在主串中的位置串长统计:串s的长度串定位:字符或子串在母串s中首次出现的位置串复制:将一个串s2复制到另一个串s1中串插入。
2024-09-24 09:29:08
685
原创 《计算机原理与系统结构》学习系列——指令:计算机的语言(下)
处理器共享存储器同一区域P1写,P2读如果P1和P2不同步,将发生数据竞争结果由访问次序决定依赖硬件提供同步指令原子读/写内存操作在读和写之间,不再允许对该空间的其他操作可以是单一的指令例如寄存器之间的原子交换或者指令的原子配对。
2024-09-18 14:13:54
979
原创 《计算机原理与系统结构》学习系列——指令:计算机的语言(中)
简单源于规整以算数运算操作为例:每条指令有且仅有三个操作数规整使实现简单简单能获得低成本高性能越小越快相对主存:数以万计的存储位置寄存器只存储少量、频繁用到的数据加速执行常用操作小常数操作出现的频率高立即数操作用不到内存取数优秀的设计需要适宜的折中方案不同类型指令采用不同的解码方式所有指令相同长度:32为,尽可能保持相似的指令格式。
2024-09-17 19:08:32
932
原创 《数据结构》学习系列——数组
定义:数组是一组偶对(下标值,数据元素值)的集合,由n(n>1)个具有相同数据类型的数据元素a1,a2...,an组成的有序序列类型:数组的数据元素具有相同的数据类型下标:在数组中,对一组具有意义的下标,都存在一个与其对应的值一维数组对应着一个下标值,二维数组对应两个下标值,如此类推访问:数组是一种随机存储结构,给定一组下标,就可以访问与其对应的数据元素数组中的数据元素的个数是固定的直接创建数组的局限无法对数组执行一些简单的运算,如数组加法和数组剑法等操作没有越界索引保护。
2024-09-17 16:19:30
1242
原创 《数据结构》学习系列——堆栈、队列
堆栈(简称栈)是插入和删除只能在其同一端进行的线性表,并按后进先出的原则进行操作允许进行插入、删除操作的一段,又称表尾。用栈顶指针(top)来指示栈顶元素栈底:固定端,又称表头空栈:表中没有元素性质后进先出性:可以对输入序列部分或全局求逆;凡符合后进先出性,都可以应用栈,如十进制数与其他数制的转换、递归的实现、算术表达式求值等问题。堆栈也称后进先出(Last In First Out)表,简称LIFO表封闭性:插入和删除只能在栈顶进行,除了栈顶元素外,其他元素不会被改变。因而,栈的封闭性很好。
2024-09-10 08:17:30
1051
原创 《计算机原理与系统结构》学习系列——指令:计算机的语言(上)
常数操作数出现的频率高,而且相对于从存储器中取出常数,包含常数的算数运算指令执行速度快很多,并且能耗低。目前在计算机系统结构中,通常一个指令系统中指令字的长度和指令中的地址结构。早期计算机有很多简单的指令集,实现简单。本系列文章用的例子都是MIPS语言。MIPS寄存器指令分为6个字段。不同计算机有不同的指令集。,这样可以增强指令的功能。
2024-09-07 10:15:43
1185
原创 《计算机原理与系统结构》学习系列——计算机概要与技术
该系列文章是本人学习《计算机原理与系统结构》课程的学习笔记参考资料为:《计算机组成与设计:硬件软件接口(原书第5版)》 (戴维 A.帕特森 (David A.Patterson) etc.)计算机概要与技术计算机发展、应用的分类及其特性计算机发展史起止年份代别主要逻辑元件软件应用领域1946-1957一电子管延迟线,磁芯存储器机器语言、汇编语言科学计算、军事、尖端科技。1958-1964二晶体管磁芯存储器高级语言、监控程序、 简单操作系统。
2024-09-01 16:43:13
1962
原创 《数据结构》学习系列——顺序表、链表
一、绪论二、线性表 一个线性表是由0个或多个具有相同类型的结点组成的有序集合。 用[]表示线性表,n=0时,线性表为空表;n≥1时,称为表头,为表尾。n≥2时,是的前驱结点,是的后继结点。表头无前驱结点,表尾无后继结点。若线性表中的结点是按值(或按关键字值)由小到大(或者由大到小)排列的,则称线性表是有序的 线性表的基本操作:线性表的存储结构顺序存储:按逻辑顺序将线性表的结点依次存放在一组地址连续的字节中顺序存储的线性表也被称为顺序表,若其中元素有序,则称其为有序顺序
2024-08-31 10:10:52
819
课设:FLTK与C++实现的劲爆数独游戏系统课设
2024-10-18
C语言 使用自定义顺序表实现非递减顺序表合并
2024-10-07
课设:C语言实现学生成绩管理系统
2024-10-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人