当前位置: 首页 > news >正文

网站做网页/seo 专业

网站做网页,seo 专业,做h5那个网站好,wordpress怎么添加广告叮叮咚咚,新一期来袭,我还在吃桃子,吃桃子,吃桃子。。。串和python的字符串差不多,数组和广义表像是python的list 文章目录 串(string) - 字符串概念及术语串的类型定义存储结构(同线性表)串的模式匹配算法…

叮叮咚咚,新一期来袭,我还在吃桃子,吃桃子,吃桃子。。。串和python的字符串差不多,数组和广义表像是python的list


文章目录

      • 串(string) - 字符串
        • 概念及术语
        • 串的类型定义
        • 存储结构(同线性表)
        • 串的模式匹配算法
          • BF 算法
          • KMP算 法 (特点:速度快 )
      • 数组
        • 数组的定义
          • 一维数组
          • 二维数组
          • 数组特点
        • n维数组的数据类型定义
        • 数组的顺序存储
        • 特殊矩阵的压缩存储
          • 对称矩阵
          • 三角矩阵
          • 对角矩阵
          • 稀疏矩阵
      • 广义表
        • 概念
        • 性质
        • 广义表和线性表的区别?
        • 基本运算
      • 案例分析
    • TO BE CONTINUED...

串(string) - 字符串

概念及术语

  • 定义: 零个或多个任意字符组成的有限序列,是一种内容受限的线性表
    在这里插入图片描述

  • 子串 : 串中任意个连续字符组成的子序列称为该串的子串, 空串和串本身都是子串,不含本身的是真子串。

  • 主串 : 包含子串的串相应地称为主串。

  • 字符位置 : 字符在序列中的序号为该字符在串中的位置 。

  • 子串位置 : 子串第一个字符在主串中的位置 。

  • 空格串 : 由一个或多个空格组成的串 , 与空串不同。

  • 串相等 : 当且仅当两个串的长度相等并且各个对应 位置上的字符都相同时 , 这两个串才是相等的 。

  • 所有的空串是相等的。

串的类型定义

在这里插入图片描述

在这里插入图片描述

存储结构(同线性表)

  • 顺序串(顺序存储结构)(更常用因不经常插入删除)

    #define MAXLEN 255
    typedef struct{char ch[MAXLEN+1]; // 存储串的一维数组,实际范围0-255(0可能保留不用)int length; // 串的当前长度长度
    }SString;
    
  • 链串(链式存储结构)

    在这里插入图片描述

    // 块链结构
    #define CHUNKSIZE 80  // 块的大小可有客户定义
    typedef struct Chunk{char ch[CHUNKSIZE];struct Chunk *next;
    }Chunk;typedef struct LString{Chunk *head,*tail; // 串的头指针和尾指针int curlen; //串的当前长度
    }LString; //字符串的块链结构
    

串的模式匹配算法

确定主串中所含子串(模式串)第一次出现的位置(BF&KMP)

BF 算法
  • (Brute-Force, 又称古典的 、 经典的 、 朴素的 、 穷举的 )

思路:从主串的每一个字符开始依次与模式串字符进行比较

Index(S,T,pos)

  • 将主串的第 pos 个字符和模式串的第一个字符比较 ,若相等,继续逐个比较后续字符;

  • 若不等,从主串的下一字符起(回溯) , 重新与模式串的第一个字符比较

  • 直到主串的一个连续子串字符序列与模式串相等。 返回值
    为 S 中与 T 匹配的子序列第一个字符的序号 , 即匹配成功 。
    否则 , 匹配失败 , 返回值 0

    在这里插入图片描述

    int Index_BF(SString S, SString T, int pos){int i=pos; j=1; // 主串i的位置从1开始pos>=1while(i<=S.length&&j<=T.length){ if (S.ch[i]==T.ch[j]) {++i; ++j;} // 主串和子串依次匹配下一个字符else {i=i-j+2; j=1} // 字符不相等,主串i回溯位置到(i-(j-1)+1),j回到1}if (j>T.length) return i-T.length; // 返回模式串匹配成功后主串对应首字符的下标else return 0;
    }
    
  • 时间复杂度为(n-m)*m+m --> (n-m+1)*m--> O(n*m)(当m<<n)在这里插入图片描述

KMP算 法 (特点:速度快 )

利用已经部分匹配的结果而加快模式串的滑动速度 ?
且主串 S 的指针 i 不必回溯 ! 可提速到 O( n+m )

在这里插入图片描述

j的位置可以根据模式串来确定 ,定义next[j]函数 , 表明当模式中剃个字符与主串中相应字符 " 失配 " 时 , 在模式中需重新和主串中该字符进行比较的字符的位置 。

在这里插入图片描述

在这里插入图片描述

int Index_KMP(SString S, SString T, int pos){int i=pos; j=1; // 主串i的位置从1开始pos>=1while(i<=S.length&&j<=T.length){ if (S.ch[i]==T.ch[j]) {++i; ++j;} // 主串和子串依次匹配下一个字符else j=next[j] // 通过next[j]得到j的位置,i不用回溯}if (j>T.length) return i-T.length; // 返回模式串匹配成功后主串对应首字符的下标else return 0;
}void get_next(SString T, int &next[]){i=1; next[1]=0; j=0;while (i < T.length){if (j==0 || T.ch[i]==T.ch[j]){++i; ++j;next[i]=j;}else j=next[j];}
}

next[j]的改进- nextval[j]

在这里插入图片描述

在这里插入图片描述

void get_nextval(SString T, int &nextval[]){i=1; nextval[1]=0; j=0;while (i < T.length){if (j==0 || T.ch[i]==T.ch[j]){++i; ++j;if (T.ch[i]==T.ch[j]) nextval[i]=j;else nextval[i]=nextval[j];}else j=nextval[j];}
}

数组

数组的定义

按一定格式排列起来的具有相同类型的数据元素的集合

一维数组

若线性表中的数据元素为非结构的简单元素,则称为一维数组 。
其逻辑结构有线性结构,定长的线性表 。

声明格式 : 数据类型 变量名称 [长度]

二维数组

在这里插入图片描述

声明格式: 数据类型变量名称 [行数] [列数] ,eg: int num[5][8]

在 C 语言中 ,一个二维数组类型也可以定义为一维数组类型
( 其分量类型为一维数组类型 ),

即 :typedef elemtype array2[m][n];

等价于 :

typedef elemtype array1[n];

typedef array1 array2[m];

三维数组 : 若二维数组中的元素又是一个一维数组 , 则称作三维数组 。。。。

n维数组:若n-1维数组中的元素又是一个一维数组结构则称为n维数组 。

线性表是数组结构的一个特例,数组结构又是线性表结构的扩展。

数组特点

结构固定(定以后维数和维界不再改变),基本操作就是初始化,销毁,取元素,修改元素 。

n维数组的数据类型定义

在这里插入图片描述

在这里插入图片描述

数组的顺序存储

一维数组存储位置

在这里插入图片描述

二维数组存储

  • 以行优先 - JAVA, C, BASIC ,COBOL ,PASCAL

    在这里插入图片描述

  • 以列优先 - FORTRAN

    在这里插入图片描述

三维数组 按页行列存放,页优先的顺序存储

在这里插入图片描述

在这里插入图片描述

扩展到n维数组存储位置计算

在这里插入图片描述

在这里插入图片描述

特殊矩阵的压缩存储

  • 压缩存储定义:若多个数据元素的值都相同 , 则只分配一个元素值的存储空间 , 且
    零元素不占存储空间 。

  • 特殊矩阵:对称矩阵,对角矩阵,三角矩阵,稀疏矩阵(非零元素个数一般<5%)

对称矩阵

在这里插入图片描述

只需存储一半元素,存储个数为每一行个数相加,即1+2+3+…+n=n(n+1)/2

在这里插入图片描述

任一个元素存在一维数组的位置aij的位置i(i-1)/2+(j-1) 原理:前面(i-1)行个数+本行的前(j-1)个元素

三角矩阵

在这里插入图片描述

对角矩阵

[ 特点 ] 在n×n的方阵中,所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全为0 ,则称为对角矩阵 。 常见的有三对角矩阵 、 五对角矩阵 、 七对角矩阵等 。(3/5/7条数据)

在这里插入图片描述

在这里插入图片描述

稀疏矩阵

三元组(行,列,值) 和矩阵维数(总行,总列)来唯一确定一个元素的位置

在这里插入图片描述

  • 三元组顺序表又称有序的双下标法。

  • 优点:非零元素在表中按行序有序存储

  • 缺点:不能随机存储,按行号存取某一行中的非零元素要从头开始查找

十字链表 法存储稀疏矩阵

在这里插入图片描述

在这里插入图片描述

广义表

概念

广义表( 又称列表 Lists) 是 n>=0 个元素 a0, a1, a2…an-1的有限序列 , 其中每一个或者是原子 , 或者是一个广义表 。

在这里插入图片描述

性质

在这里插入图片描述

在这里插入图片描述

广义表和线性表的区别?

  • 广义表是线性表的推广,线性表是广义表的特例
  • 广义表的结构相当灵活 , 在某种前提下 , 它可以兼容线性表 、 数组 、
    树和有向图等各种常用的数据结构 。

基本运算

GetHead(L): 求非空广义表的第一个元素,可以是一个原子或者一个子表

GetTail(L):非空广义表去掉表头元素以外其他元素所构成的表。

案例分析

病毒感染检测(病毒RNA是环状)

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tK0IY99o-1687358835821)(../resources/image-20230621224425435.png)]


TO BE CONTINUED…

相关文章:

数据结构与算法基础(青岛大学-王卓)(5)

叮叮咚咚&#xff0c;新一期来袭&#xff0c;我还在吃桃子&#xff0c;吃桃子&#xff0c;吃桃子。。。串和python的字符串差不多,数组和广义表像是python的list 文章目录 串(string) - 字符串概念及术语串的类型定义存储结构&#xff08;同线性表&#xff09;串的模式匹配算法…...

微信小程序开发入门学习01-TDesign模板解读

目录 1 使用模板创建小程序2 app.json3 页面布局总结 原来我们使用微信开发者工具&#xff0c;比较困难的是前端框架的选择上&#xff0c;官方也没有提供一套框架供我们使用&#xff0c;最近开发者工具已经提供了一套前端框架&#xff0c;后续我们开发的效率会因为使用模板提高…...

使用 Jetpack Compose 创建自定义的对话框(Dialog)

在 Jetpack Compose 中&#xff0c;对话框&#xff08;Dialog&#xff09;是一种常见的用户界面组件&#xff0c;用于展示重要的信息、确认操作或者收集用户输入。本篇博客将带你深入了解 Jetpack Compose 中的对话框&#xff0c;并展示如何创建自定义的对话框&#xff0c;以满…...

c++ auto学习笔记

一、auto的意义 在C11中赋予auto的意义是&#xff1a;在声明变量时&#xff0c;根据初始化表达式自动推断该变量的类型。声明函数时作为函数返回值的占位符&#xff08;用在函数返回类型后置的情况&#xff09;。 如 auto i 6; //auto推断为intauto func()->int //函数返…...

【随机种子初始化】一个神经网络模型初始化的大坑

1 问题起因和经过 半年前写了一个模型&#xff0c;取得了不错的效果&#xff08;简称项目文件1&#xff09;&#xff0c;于是整理了一番代码&#xff0c;保存为了一个新的项目&#xff08;简称项目文件2&#xff09;。半年后的今天&#xff0c;我重新训练这个整理过的模型&…...

翻过那座山——Gitlab流水线任务疑难之编译有子模块的项目指南

&#x1f4e2;欢迎点赞 &#xff1a;&#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff0c;赐人玫瑰&#xff0c;手留余香&#xff01;&#x1f4e2;本文作者&#xff1a;由webmote 原创&#x1f4e2;作者格言&#xff1a;新的征程&#xff0c;我们面对的不是…...

手机照片删除后如何恢复

在如今移动互联网和智能手机时代&#xff0c;拍摄照片已经成为了人们常见的一种生活方式&#xff0c;尤其是通过手机拍摄照片已经成为了许多人记录生活点滴、分享经验和表达情感等的必备工具。但是&#xff0c;随着手机照片量的激增&#xff0c;意外删除手机中珍贵照片的事件也…...

SpringBoot 线上服务假死,CPU 内存正常,什么情况?

背景 开发小伙伴都知道线上服务挂掉&#xff0c;基本都是因为cpu或者内存不足&#xff0c;出现GC频繁OOM之类的情况。本篇文章区别以上的情况给小伙伴们带来不一样的服务挂掉。 还记得哔哩哔哩713事故中那场诡计多端的0吗&#xff1f; 图片 对就是这个0&#xff0c;和本次事…...

kotlin从入门到精通之内置类型

基本类型 声明变量 val&#xff08;value的简写&#xff09;用来声明一个不可变的变量&#xff0c;这种变量在初始赋值之后就再也不能重新赋值&#xff0c;对应Java中的final变量。 var&#xff08;variable的简写&#xff09;用来声明一个可变的变量&#xff0c;这种变量在初始…...

实战指南:使用Spring Boot实现消息的发送和接收

当涉及到消息发送和接收的场景时&#xff0c;可以使用Spring Boot和消息中间件RabbitMQ来实现。下面是一个简单的示例代码&#xff0c;展示了如何在Spring Boot应用程序中创建消息发送者和接收者&#xff0c;并发送和接收一条消息。 首先&#xff0c;你需要进行以下准备工作 确…...

常用的数据结构——栈

目录 1、入栈 2、出栈 3、获取栈顶的元素 4、从栈中查找元素 栈是一种常见的数据结构&#xff0c;栈的特点是后进先出&#xff0c;就像我们叠盘子&#xff0c;拿走上面的盘子才能拿到下一个。java中的栈java.util.Stack是通过java.util.Vector实现的&#xff0c;所以底层都…...

C++完成淄博烧烤节管理系统

背景&#xff1a; 这次我们结合今年淄博烧烤做一个餐厅管理系统&#xff0c;具体需求如下&#xff0c;我们选择的是餐饮商家信息管理 问题描述&#xff1a; 淄博烧烤今年大火&#xff0c;“进淄赶烤”是大家最想干的事情&#xff0c;淄博烧烤大火特火的原因&#xff0c;火的…...

我心中的TOP1编程语言

目录 一、评选最佳编程语言时需要考虑哪些标准 &#xff08;一&#xff09;易用性 &#xff08;二&#xff09;执行效率 &#xff08;三&#xff09;语言功能特性 &#xff08;四&#xff09;工具生态环境 &#xff08;五&#xff09;开发者社区 二、不同编程语言的优点…...

Linux工具之gdb(含移植到arm-linux系统)

文章目录 文件目录结构移植ncurses库移植gdb移植到arm板调试测试 linux主机&#xff1a;ubuntu-18.04 交叉编译器&#xff1a;arm-buildroot-linux-gnueabihf 开发板kernel&#xff1a;Linux 5.4.0-150-generic x86_64 开发板&#xff1a;100ASK_STM32MP157_PRO开发板 arm-…...

DolphinScheduler

参考 Apache DolphinScheduler v1.3.9 使用手册 内置组件 masterserverworkserverzookeepertask queuealertapiui 设计 去中心化设计 通过zk选举 UI功能 队列管理 Yarn调度器的资源队列 用户管理 租户对应的是Linux系统用户&#xff0c;是Worker执行任务使用的用户 用户…...

10大白帽黑客专用的 Linux 操作系统

平时在影视里见到的黑客都是一顿操作猛如虎&#xff0c;到底他们用的都是啥系统呢&#xff1f; 今天给大家分享十个白帽黑客专用的Linux操作系统。 ▍1. Kali Linux Kali Linux是最著名的Linux发行版&#xff0c;用于道德黑客和渗透测试。Kali Linux由Offensive Security开发&…...

Golang每日一练(leetDay0099) 单词规律I\II Word Pattern

目录 290. 单词规律 Word Pattern &#x1f31f;  291. 单词规律 II Word Pattern ii &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 …...

linux_centos7.9/ubuntu20.04_下载镜像及百度网盘分享链接

1、镜像下载站点 网易开源镜像&#xff1a;http://mirrors.163.com/ 搜狐开源镜像&#xff1a;http://mirrors.sohu.com/ 阿里开源镜像&#xff1a;https://developer.aliyun.com/mirror/ 首都在线科技股份有限公司&#xff1a;http://mirrors.yun-idc.com/ 常州贝特康姆软件技…...

Reqable HTTP一站式开发+调试工具(小黄鸟作者另一力作、小黄鸟完美替代品)

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!Reqable HTTP一站式开发+调试工具(小黄鸟作者另一力作、小黄鸟替代品) 环境 win10pixel4Android13概览 …...

Yacc 与 Lex 快速入门

Yacc 与 Lex 快速入门 简介&#xff1a; Lex 和 Yacc 是 UNIX 两个非常重要的、功能强大的工具。事实上&#xff0c; 如果你熟练掌握 Lex 和 Yacc 的话&#xff0c;它们的强大功能使创建 FORTRAN 和 C 的编译器如同儿戏。本文详细的讨论了编写自己的语言和编译器所 用到的这两…...

【开源与项目实战:开源实战】80 | 开源实战二(下):从Unix开源开发学习应对大型复杂项目开发

上两节课&#xff0c;我们分别从代码编写、研发管理的角度&#xff0c;学习了如何应对大型复杂软件开发。在研发管理这一部分&#xff0c;我们又讲到比较重要的几点&#xff0c;它们分别是编码规范、单元测试、持续重构和 Code Review。其中&#xff0c;前三点在专栏的理论部分…...

【单周期CPU】LoongArch | 立即数扩展模块Ext | 32位算术逻辑运算单元(ALU)

前言&#xff1a;本章内容主要是演示在vivado下利用Verilog语言进行单周期简易CPU的设计。一步一步自己实现模型机的设计。本章先介绍单周期简易CPU中基本组合逻辑部件的设计。 &#x1f4bb;环境&#xff1a;一台内存4GB以上&#xff0c;装有64位Windows操作系统和Vivado 201…...

Python实现数据结构的基础操作

目录 一、列表&#xff08;List&#xff09; 二、字典&#xff08;Dictionary&#xff09; 三、集合&#xff08;Set&#xff09; 四、链表的实现 五、队列和栈 数据结构是计算机科学中非常重要的概念&#xff0c;它用于存储和组织数据以便有效地进行操作。Python作为一种…...

20230624----重返学习-vue-响应式处理思路-仿源码

day-098-ninety-eight-20230624-vue-响应式处理思路-仿源码 vue vue大体概念 Vue是渐进式框架 所谓渐进式框架&#xff0c;就是把一套全面的框架设计体系&#xff0c;拆分成为多个框架&#xff0c;项目中需要用到那些需求&#xff0c;再导入对应的框架&#xff0c;以此来保证…...

【MongoDB】三、使用Java连接MongoDB

【MongoDB】三、使用Java连接MongoDB 实验目的实验内容练习1、开启Eclipse&#xff0c;创建Java Project项目&#xff0c;命名为Mongo12、添加项目依赖的jar包3、创建类MongoDemo4、连接数据库5、查看集合6、创建集合7、删除集合8、查看文档9、插入文档10、更新文档11、删除文档…...

【C++】通讯录的基本实现,附有源码分享

目录 1、运行环境 2、系统实现功能 2.1菜单功能 2.2退出通讯录功能 2.3添加联系人功能 2.4显示联系人功能 2.5删除联系人功能 2.6查找联系人功能 2.7修改联系人功能 2.8清空联系人功能 2.9动态扩容功能 2.10选择优化功能 2.11文件操作 3、源码分享 1、运行环境 …...

UI 自动化测试 —— selenium的简单介绍和使用

selenium 是 web 应用中基于 UI 的自动化测试框架&#xff0c;支持多平台、多浏览器、多语言。 提到 UI 自动化就先了解什么是自动化测试&#xff1f; 目录 1. 自动化测试 2. UI 自动化 2.1 UI 自动化的特点 2.2 UI 自动化测试的优缺点 2.3 UI 自动化测试的使用对象 2.4…...

mybatisPlus中apply的使用以进行联表等复杂sql语句

在 MyBatis-Plus 中&#xff0c;apply() 方法可以用于添加任意的 SQL 片段&#xff0c;包括联表查询。因此&#xff0c;你可以使用 apply() 方法来处理各种类型的联表查询。 使用 apply() 方法的好处是可以在查询条件中直接添加原生的 SQL 片段&#xff0c;而不受 MyBatis-Plu…...

自学Python技术的方法

目录 一、Python技术介绍 二、学习前的准备工作 三、学习时的具体操作 四、如何巩固学习 Python是一种高级编程语言&#xff0c;被广泛用于软件开发、数据分析、人工智能和科学计算等领域。它于1991年由Guido van Rossum创建&#xff0c;并且其简洁、易读的语法以及丰富的标…...

python熟悉python基础语法,了解html网络结构,了解json格式数据,含有字符串

前言 Python网络爬虫是利用Python编写的程序&#xff0c;通过自动化地访问网页、解析html或json数据&#xff0c;并提取所需信息的技术。下面将详细介绍一些与Python网络爬虫相关的重要知识点。 1、Python基础语法&#xff1a; 变量和数据类型&#xff1a;学习如何声明变量以及…...