数据结构04:模式匹配算法--KMP
字符串模式匹配介绍相信学习过数据结构与算法的同学一定不会对字符串感到陌生,字符串的逻辑结构与线性表很类似,不同之处是字符串中的元素都是字符。对于字符串这一数据结构,寻找字符串中子串的位置是最重要的操作之一,查找字串位置的操作通常称为串的模式匹配。而KMP算法就是一种字符串模式匹配算法,在介绍KMP算法之前,我们首先了解以下朴素的模式匹配算法是怎样进行的。 朴素的模式匹配算法假设我们的主串S=“goodgoogle”,子串T=“google”,我们需要在主串中找到子串的位置,比较朴素的想法是用两个指针(指针其实也就是下标i,j)分别指向主串和子串,如果两个指针指向的元素相同则指针后移,不相同则需要回退指针(主串指针回退到上次匹配首位的下一个位置,子串指针回退到开头位置),重复进行上述操作直到主串指针指向主串末尾,即如下所示: (1) 从主串S的第一位开始,S与T的前三位都匹配成功,第四位匹配失败,此时将主串的指针退回到第二位,子串的指针退回子串开始,即从S[1]开始重新匹配。 (2)...
数据结构03:共享栈的设计(ShareStack)
源代码: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175# include<iostream># define MAXSIZE 10using namespace std;typedef...
计算机组成02:加法器的串行进位和并行进位
1.全加器(加法单元) 加法单元是一个三端输入,两端输出的加法网络 ·串行加法器和并行加法器串行加法器:只设一个全加器称串行加法器典型的串行加法器只用一位全加器,由移位寄存器从低位到高位串行地提供操作数进行相加 并行加法器:让各位数据同时相加,就产生了并行加法器并行加法器解决了同时对数的各位相加,减少了本身求和延迟。但是。低位向高位产生的进位却姗姗来迟。 ·进位链通常我们将各位之间传递进位信号的逻辑连接构成的进位线路称进位链(1)串行进位方式:每一级进位直接依赖于前一级的进位(2)并行进位方式:从数学的角度去掉数据的相关项(3)...
计算机组成原理01——总结
第一章 计算机系统概述“较简单,不做过多赘述,后面会详细学到” 第一节 计算机系统层次结构1.计算机系统的基本组成:硬件+软件 2.计算机硬件的基本组成:运算器+存储器+控制器+输入设备+输出设备 3.系统软件和应用软件 系统软件 操作系统、数据库管理系统、语言处理程序、分布式软件系统、网络软件系统、标准库语言、服务性程序 应用软件 科学计算类程序、工程设计类程序、数据统计与处理程序 4.(易考)翻译程序: 汇编程序(汇编器) 将汇编语言程序翻译成机器语言程序 解释程序(解释器) 将源程序翻译成机器指令并立即执行 编译程序(编译器) 将高级语言翻译城机器语言或汇编语言 第二节 计算机性能指标 吞吐量:表征一台计算机在某一时间间隔内能够处理的信息量。 响应时间:表征从输入有效到系统产生响应之间的时间度量,用时间单位来度量。 利用率:在给定的时间间隔系统被实际使用的时间所占的比率,用百分比表示。 处理机字长:指处理机运算器中一次能够完成二进制数运算的位数,如 32 位、64 位。 总线宽度:一般指 CPU...
数据结构02:静态链表
1、引言本文主要是对动态链表和静态链表的区别进行原理上的讲解分析,先通过对顺序表和动态链表概念和特点的原理性介绍,进而引申出静态链表的作用,以及其概念。通过这些原理性的概述,最后总结归纳出动态链表和静态链表的区别。本文不对代码进行额外的讲解,只对原理进行分析以加深基础的认识,相关概念的代码应用可以另行在网上进行搜索详细学习。 2、顺序表和动态链表的特点首先需要明白的是,顺序表和链表都是线性表,即线性存储结构。使用线性表存储数据的方式可以这样理解,即“把所有数据用一根线串起来,再存储到物理空间中”。 如下图左边将数据依次存储在连续的整块物理空间中,这种存储结构称为顺序存储结构(简称顺序表);下图右边数据分散的存储在物理空间中,通过一根线保存着它们之间的逻辑关系,这种存储结构称为链式存储结构(简称链表)。可以看出每一个数据按照“一对一”的关系按照次序逐个排列。 2.1 顺序表存储结构顺序表对数据的物理存储结构有要求,需预先申请一整块足够大的存储空间,然后将数据依次存储起来,数据之间紧密贴合,不留一丝空隙。如下图所示,顺序表数据的 ‘一对一’...
24创新实训01:MNIST手写数据集预测(ML)
2023-2024 学年秋季学期 创新创业实训一、实训过程简述1 实训概况、实训过程实践概况:本学期在马老师的指导下,借助网络资源学习了机器学习和深度学习的一些 入门知识,了解了一些基础的概念,模型背后的数学原理,也动手实践做了一个通过全连接 神经网络模型来预测手写数字集的小项目,加深了我对理论知识的理解。 实践过程:学期初,我在网络上学习了北京邮电大学鲁鹏老师的计算机视觉与深度学习 的课程,这门课主要是讲解一些分类器模型背后的数学原理,我分别听了图像分类任务,线 性分类器,全连接神经网络以及卷积的相关课程。学习了如何构建模型、通过损失函数刻画 模型性能,并利用优化算法更新模型权值等基础的机器学习与深度学习知识。 更为具体一点来说,在课程中我学习到了多类支撑向量机损失,交叉熵损失,正则损失 三种具有不同的特点的损失函数来刻画模型的预测性能;此外优化算法方面,我了解了梯度 下降算法,以及在其基础上优化形成的小批量随机梯度下降算法。全连接神经网络方面,我 了解了激活函数对线性分类器进行的非线性操作,使得模型可以处理更为复杂的分类任务;...
24夏季实训01:排序(Sort)
经典排序算法的优化及其测试2023-2024 夏季学期《计算机程序设计实训》课程报告(计算机工程与科学学院)摘 要 本文主要研究常用的经典排序算法在不同的数据规模,数据类型,数据分布的情况下的运行 效率,并将通过对冒泡排序、选择排序、快速排序三种经典算法的优化研究,探索不同排序算法在不同数 据场景下的表现。对所得出的数据,将以图表的方式做出具体分析。 关键词 排序;优化算法;算法评析; Optimization And Testing Of Classical Sorting Algorithm2023-2024 SUMMER SEMESTER “COMPUTER PROGRAMMING TRAINING”COURSE REPORT (School of Computer Engineering and Science)Abstract This paper mainly studies the efficiency of commonly used classical sorting algorithms in the case of different data...