KMP算法是对一般模式匹配算法的改进,由D.E.Knuth与V.R.Pratt和J.H.Morris 同时发现的因此人们称它为克努特-莫里斯-莫拉特操作(简称为KMP算法)。 对于一般的模式匹配算法:分别利用两个指针i和j指示主串S和T中的当前正待比较的字符位置。算法的基本思想是:从主串的S的第POS个字符开始起和模式的第一个字符比较之,如相等,则继续逐个比较后续字符;否则从主串的下一个字符起再重新和模式的字符比较之。以此类推,直到模式T中的每个字符依次和主串S中的一个连续字符序列相等,则称匹配成功,则函数值为和模式T中的第一个字符相等的字符在主串S中的序号,否则称匹配不成功,函数值为0.而对于模式匹配的KMP算法可以在O(n+m)的时间数量级上完成串的模式匹配操作。其改进过程在于:每当一趟匹配过程出现字符比较不相等时,不需回溯i指针,而是利用已经得到的部分匹配的结果将模式串向右滑动一段尽可能远的距离后,继续进行比较。滑动的这一段距离我们将会用到函数Next[], KMP算法的最大特点是指示主串的指针不须回溯,整个匹配过程中,对主串仅需从头到尾扫描一遍,这对处理从外设输入的庞大文件很有效,可以边度入边匹配,而无需回头重读。 开发工具:C语言
2021-04-10 21:02:13 118KB 数据结构 课程设计 实验报告 KMP算法
1
设计一个选修课安排系统。本系统的目标是实现选修课安排系统所需的基本功能,包括管理员能维护教室、老师和学生信息,教师可以登记、修改授课信息,学生可以制定选修计划等功能。 共40页 目录 1 问题描述 2 问题分析 2.1 场景描述 2.2 需求分析 2.2.1 初始功能提取 2.2.2 性能需求分析 2.2.3 功能需求分析 3 建立数据流图 3.1 顶层数据流图 3.2 第1层数据流图 3.3 第2层数据流图 3.4 数据字典 3.5 加工说明 4 软件设计(结构化设计方法) 4.1 模块结构图 4.2 模块说明 4.2.1 登录模块 4.2.2 学生选课模块 4.2.3 教学管理模块 4.2.2 教务管理模块 4.2.3 系统管理模块 5 测试用例设计 5.1 黑盒测试 5.1.1 软件流 5.1.2 测试场景及用例 5.2 白盒测试 6 面向对象设计方法实验 6.1 系统用例图 6.1.1 角色的确定 6.1.2 建立系统用例图和典型用例说明 6.2 系统类图及说明 6.3 顺序图/合作图 6.4 活动图/状态图
2021-03-25 20:54:28 1.6MB 软件工程 课程设计 实验报告 说明书
1
包括基本运算器实验,微程序控制器实验,CPU与简单模型机实验的报告。还有运行截图及代码。
2021-03-06 18:01:23 1.1MB 计算机网络
1
java课程设计实验报告,适用大学计算机科学与技术专业
2021-03-03 21:40:49 97KB java
1
内涵实验报告和源代码,注释详细,可直接做课设使用,课程报告已写好。 题目:学生管理系统设计 功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、出生年月、专业、班级、家庭地址、宿舍号码等。 系统要求实现以下功能: 1、输入功能:录入学生信息(包括学生学号、姓名、性别、出生年月、专业等); 2、显示功能:完成学生记录的显示。 3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。 分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。2、完成信息的录入和显示(即通过编程创建文件,输入学生信息并可将文件内容显示出来)3、完成修改功能,即输入学号,可修改该学生的信息4、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。 要求:1、用C语言实现程序设计; 2、利用结构体数组、链表等实现学生信息表达、查询等,充分体现数据结构的知识; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。 5、程序中所用到的排序查找方法需采用数据结构中所学方法实现,要求方法实用效率高。
2021-02-27 13:57:50 144KB C语言 课程设计 实验报告
1
大一课程设计简单计算器的实现,包含程序代码和注释,报告包含详细的实验目的,设计步骤,设计流程图,结果运行图,心得体会等等;欢迎下载
2021-02-23 15:08:34 256KB 课程设计+实验报告
1
c 语言学生信息管理系统 课程设计实验报告,对每个功能 ,自定义函数都有详细的解释,附源代码。
2021-02-06 19:02:43 1.02MB c语言 课程设计 实验报告
1
用于数据库课程设计,包含数据库课程设计模板(实例).doc,数据库课程设计模板.doc,数据库原理课程设计要求及题目.doc。
2021-01-28 00:36:29 63KB 数据库 课程设计 实验
1
Linux下状态检测防火墙的设计与实现,包含内核态和用户态的代码,详情见压缩包内的备注
1
需求分析 功能需求 将任意指定的文本文件中的字符统计后,按Huffman编码方式对文件进行编码,并保存码表及建立的Huffman树;用给定的码表对用Huffman方式编码的文件进行压缩和解压缩。 总体设计 详细设计 测试结果
2021-01-20 18:10:08 144KB 哈夫曼树 课程设计 实验报告
1