数据结构与算法基础(青岛大学-王卓)(8)
哎呀呀,sorry艾瑞波地,这次真的断更一个月了,又发生了很多很多事情,秋风开始瑟瑟了,老父亲身体查出肿瘤了,有病请及时就医,愿每一个人都有一个健康的身体,God bless U and FAMILY.
直接上货了 😃
文章目录
- 查找
- 概念
- 线性表的查找
- 顺序查找(线性)
- 应用范围:
- 表示方法:
- 算法:
- 算法7.2时间效率分析:
- 讨论
- 优缺点:
- 折半查找(对半/二分)
- 算法思路
- 二分查找效率分析 - 判定树
- 平均查找长度ASL(成功时)
- 优缺点
- 分块查找(索引顺序查找)
- 条件
- 性能分析
- 优缺点
- 树表的查找
- 二叉排序树 (Binary Sort Tree)
- 二叉排序树定义
- 二叉排序树的性质
- 二叉排序树查找
- 二叉排序树的插入
- 二叉排序树的生成
- 二叉排序树的删除
- 平衡二叉树
- 散列表的查找
- 散列表术语
- 散列函数构造方法
- 直接定址法
- 除留余数法
- 处理冲突的方法
- 开放地址法
- 链地址法
- 散列表查找
查找
内容回顾:
概念
-
查找表是由同一类型的数据元素(或记录)构成的集合。由于"集合"中的数据元素之间存在着松散的关系,因此查找表是一种应用灵便的结构。
-
查找 – 根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或(记录),查找成功返回该记录信息或者位置,查找不成功则给出空记录或者空指针。
-
关键字:用来标识一个数据元素(或记录)的某个数据项的值。分为 主关键字(可唯一地标识一个记录的关键字) 和 次关键字(用以识别若干记录的关腱字)。
-
对查找表的操作:查询记录, 检索属性, 插入数据元素, 删除数据元素。
-
查找表分类:
- 静态(仅查询)
- 动态(可插入,删除)
-
查找算法的评价指标 – 平均查找长度(关键字的平均比较次数) – ASL(Average Search Length)
-
查找的方法取决于查找表的结构,即表中数据元素是依何种关系组织在一起的。为提高查找效率,一个办法就是在构造查找表时,在集合中的数据元素之间人为地加上某种确定的约束关系。
线性表的查找
顺序查找(线性)
应用范围:
- 顺序表或线性链表表示的静态查找表
- 表内元素之间无序
表示方法:
// 数据元素的类型定义
typedef struct {KeyType key; //关键字域...... //其他域
} ElemType;// 顺序表结构类型定义
typedef struct {ElemType *R; // 表基址int length; //表长
} SSTable; //Sequential Search Table//定义一个顺序表ST
SSTable ST;
算法:
// 算法7.1
int Search_Seq(SSTable ST, KeyType key) {// 如成功则返回位置信息,不成功返回0for(i=ST.length; i>=1; --i) {if (ST.R[i].key == key) return i;return 0;}
}
// 算法改1
int Search_Seq(SStable ST, KeyType key) {for(i=ST.length; ST.R[i].key != key; --i)if (i<=0) break;if (i>0) return i;else return 0;
}// 算法改2
inti Search_Seq(SStabl ST, KeyType key) {for(i=ST.length; ST.R[i].key != key&&i>0; --i);if (i>0) return i;else return 0;
}
上面的算法的每一次循序都需要进行两次比较,能否改进?
- 查找的值是否相等
- i的值是否越界
改进:
把待查关键字 key 存入表头("哨兵、“监视哨”) 从后往前个比较,可免去查找过程中每一步都要检测是否查找完毕,加快速度。(如果找不到在表头[0]位置也一定会找到)。
当ST.length较大时,此改进能使进行一次查找所需的平均时间几乎减少一半。
// 改进算法7.2
int Search_Seq(SSTable ST, KeyType key) {ST.R[0].key = key;for (i=ST.length; ST.R[i].key != key; --i);return i;}
}
算法7.2时间效率分析:
时间复杂度:O(n)
查找成功时的平均查找长度,设表中各记录查找概率相等(注意这里是指的是查找成功时所以不算哨兵位置)
ASLs(n)=(1 + 2 +…+ n)/n = (n+1)/2
空间复杂度:O(1) — 辅助空间用于哨兵位置
讨论
1 、记录的查找概率不相等时如何提高查找效率?
查找表存储记录原则按照查找概率高低存储:1 )查找概率越高,比较次数越少;2 )查找概率越低,比较次数较多。
2 、记录的查找概率无法测定日日何提高查找效率?
方法 – 按查找概率动态调整记录顺序.1 )在每个记录中设一个访问频度域;2 )始终保持记录按非递增有序的次序排列;3 )每次查找后均将刚查到的记录直接移至表头。
优缺点:
优点:算法简单,逻辑次序无要求,且不同存储结构均适用。
缺点:ASL 太长,时间效率太低。
折半查找(对半/二分)
折半查找:每次将待查记录所在区间缩小一半。
算法思路
非递归算法
-
设表长为n,low、high 和 mid 分别指向待查元素所在区间的上界、下界和中点, key 为给定的要查找的值.
-
初始时,令low = 1,high=n, mid=$\lfloor(low+high)/2\rfloor $
-
让 k 与 mid 指向的记录比较
- 若key == R[mid].key 查找成功
- 若key < R[mid].key, 则 high=mid-1
- 若 key > R[mid].key, 则 low=mid+1
-
重复上述操作,直至 low>high 时,查找失败
// 二分查找(非递归)
int Search_Bin(SSTabl ST, KeyType key) {low = 1;high = ST.length; // 初始化置区间值while (low <= high) { mid = (low + high) / 2;if (ST.R[mid].key == key) return mid; // 找到元素else if (ST.R[mid].key < key) { // 缩小区间low = mid + 1; // 继续在后半区查找} else high = mid -1; // 继续在前半区查找}return 0; // 表中不存在待查元素
} // Search_Bin// 二分查找(递归)
int Search_Bin(SSTable ST, KeyType key, int low, int high) {if (low > high) return 0; // 查找不到时返回0mid = (low + high)/2if (ST.R[mid].key == key) return mid;else if (ST.R[mid].key > key) {Search_Bin(ST, key, low, mid-1);} else {Search_Bin(ST, key, mid+1, high);}
}
二分查找效率分析 - 判定树
平均查找长度ASL(成功时)
优缺点
折半查找优点:效率比顺序查找高
折半查找缺点:只适用于有序表,且限于顺序存储结构(对线性链表无效)。
分块查找(索引顺序查找)
条件
-
将表分成几块,且表或者有序,或者分块有序;若i < j,则第 j 块中所有记录的关键字均大于第 i 块中的最大关键字。
-
建立"索引表"(每个结点含有最大关键字域和指向本块第一个结点的指针,且按关键字有序)。
查找过程:找38 --> 目标在索引48的块中 --> 顺序/折半在块内查找–> 找到38
性能分析
优缺点
优点:插入和删除比较容易,无需进行大量移动。
缺点:要增加一个索引表的存储空间并对初始索引表进行排序运算。
适用情况如果线性表既要快速查找又经常动态变化,则可采用分块查找。
树表的查找
动态查找表 – 几种特殊的树, 用来解决插入,删除频繁操作但需要维护表的有序性情况。
表结构在查找过程中动态生成对于给定值 key若表中存在,则成功返回;否则,插入关字等于 key 的记录
分类:
- 二叉排序树
- 平衡二叉树
- 红黑树
- B- 树
- B+ 树
- 键树
二叉排序树 (Binary Sort Tree)
又称为二叉搜索树、二叉查找树
二叉排序树定义
二叉排序树或是空树,或是满足如下性质的二叉树:
-
若其左子树非空,则左子树上所有结点的值均小于根结点的值;
-
若其右子树非空,则右子树上所有结点的值均大于等于根结点的值;
-
其左右子树本身又各是一棵二叉排序树
二叉排序树的性质
中序遍历非空的二叉排序树所得到的数据元素序列是一个按关键字排列的递增有序序列。
如上图就是 3 12 24 37 45 53 61 78 90 100
二叉排序树查找
算法
typedef struct {KeyType key; //关键字项infoType otherinfo; //其他数据域
}ElemType;typedef stuct BSTNode {ElemType data; //数据域struct BSTNode *lchild, *rchild; //左右孩子指针
}BSTNode, *BSTree;BSTree T; //定义二叉排序树T
BSTree SearchBST(BSTree T, KeyType key) {if (!T) || (key == T->data.key) return T; //表为空或者表不为空且找到了都返回一个指针T(BSTree类型)else if (key < T->data.key) // 判断key在左右子树的位置return SearchBST(T->lchild, key); //继续在左子树上找else return SearchBST(T->rchild, key); //继续在右子树上找
}//SearchBST
平均查找长度
二叉排序树上查找某关键字等于给定值的结点过程,其实就是走了一条从根到该结点的路径。
总结:含有 n 个结点的二叉排序树的平均查找长度和树的形态有关
二叉排序树的插入
-
若二叉排序树为空,则插入结点作为根结点插入到空树中
-
否则,继续在其左、右子树上查找
-
树中已有,不再插入
-
树中没有
- 查找直至某个叶子结点的左子树或右子树为空为止,则插入结点应为该叶子结点的左孩子或右孩子
-
-
插入的元素一定在叶结点
二叉排序树的生成
-
从空树出发,经过一系列的查找、插入操作之后,可生成一棵二叉排序树。
-
一个无序序列可通过构造二叉排序树而变成一个有序序列。构造树的过程就是对无序序列进行排序的过程。(插入的结点均为叶子结点,故无需移动其他结点)
-
关键字的输入顺序不同,建立的不同二叉排序树。
二叉排序树的删除
从二叉排序树中删除一个结点,不能把以该结点为根的子树都删掉,只能删掉该结点,并且还应保证删除后所得的二叉树仍然满足二叉排序树的性质不变。在二叉排序树中删去一个结点相当于删去有序序列中的一个结点。(中序遍历二叉树得到递增有序的序列)
-
被删除的结点是叶子结点:直接删去该结点。
-
被删除的结点只有左子树或者只有右子树,用其左子树或者右子树替换它(结点替换)。
其双亲结点的相应指针域的值改为“指向被删除结点的左子树或者右子树”
-
被删除的结点既有左子树,也有右子树
以其中序前趋值替换之(值替换),然后再删除该前趋结点。前趋是左子树中最大的结点。
也可以用其后继替换之,然后再除该后继结点。后继是右子树中最小的结点。
-
总结图:
平衡二叉树
平衡二叉树 (balanced binary tree)又称 AVL (Adelson VeIskii and Landis)
一棵平衡二叉树或者是空树,或者是具有下列性质的二叉排序树.
- 左子树与右子树的高度之差的绝对值小于等于 1
- 左子树和右子树也是平衡二叉排序树。
结点的平衡因子 (BF)
-
给每个结点附加一个数字,给出该结点左子树右子树的高度差。值范围(-1, 0 ,1)
-
平衡因子=结点左子树的高度-结点右子树的高度
-
对于一棵有 n 个结点的 AVL 树,其高度保持在 O(log2n )数量级,ASL也保持在 O(log2n )量级
失衡二叉排序树的调整
四种类型
调整原则:
- 降低高度
- 保持二叉排序树的性质
-
LL型调整
-
RR型
-
LR型
-
RL型
构造案例:
输入关键字序列(16,3,7,11,9,26,18,14,15), 给出构造AVL 树的步骤。
散列表的查找
基本思想:记录的存储位置与关键字之间存在对应关系
对应关系-- hash 函数 Loc(i)= H(keyi)
散列表术语
散列方法(杂凑法):
选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放;查找时,由同一个函数对给定值 k 计算地址,将 k 与地址单元中元素关键码进行比,确定查找是否成功。
散列函数(杂凑函数):散列方法中使用的转换函数
散列表(杂凑表):按上述思想构造的表
散列存储:选取某个函数,依该函数按关键字计算元素的存储位置 Loc(i)=H(keyi)
冲突:不同的关键码映射到同一个散列地址,当key1 != key2
我们的 H(key1)=H(key2)
散列函数构造方法
在散列查找方法中,冲突是不可能避免的,只能尽可能减少。
构造散列函数考虑的因素:
- 执行速度(即计算散列函数所需时间)
- 关键字的长度;
- 散列表的大小;
- 关键字的分布情况;
- 查找频率。
根据元素集合的特性构造
-
要求一:n 个数据原仅占用 n 个地址。虽然散列查找是以空间换时间,但仍希望散列的地址空间尽量小。
-
要求二:无论用什么方法存储,目的都是尽量均匀地存放元素,以避免冲突。
有以下方法:
- 直接定址法
- 数字分析法
- 平方取中法
- 折叠法
- 除留余数法(最常用)
- 随机数法
直接定址法
Hash(key) = a*key + b
(a 、b为常数)
优点:以关键码 key 的某个线性函数值为散列地址,不会产生冲突。
缺点:要占用连续地址空间,空间效率低。
除留余数法
Hash(key)= key mod p
( p 是一个整数)
如何取p: 设表长为 m ,取 p <= m
且为质数
处理冲突的方法
方法:
- 开放定址法(开地址法)
- 链地址法(拉链法)
- 再散列法(双散列函数法)
- 建立一个公共溢出区
开放地址法
基本思想:有冲突时就去寻找下空的散列地址,只要散列表足够大,空的散列地址总能找到,并将数据元素存入。
例如:除留余数法Hi=(Hash(key)+di) mod m (di 为增量序列)
常用方法:线性探测法;二次探测法;伪随机法
线性探测法
例:关键码集为{47,7,29,11,16,92,22,8,3}, 散列表长为 m = 11 ;散列函数为 Hash(key)=key mod 11
;拟用线性探测冲突。建散列表如下:
二次探测法:
伪随机探测法:
链地址法
基本思想:相同散列地址的记录链成一单链表
m个散列地址就设 m个单链表,然后用一个数组将m个单链表的表头指针存储起来,形成一个动态的结构。
链地址法建立散列表步骤:
Step1: 取数据元素的关键字 key ,计算其散列函数值(地址)。若该地址对应的链表为空,则将该元素插入此链表;否则执行 Step2 解决冲突。
Step2: 根据选择的冲突处理方法,计算关键字 key 的下一个存储地址。若该地址对应的链表为不为空,则利用链表的前插法或后插法将该元素插入此链表。
优点:
-
非同义词不会冲突,无"聚集"现象
-
链表上结点空间动态申请,更适合表长不确定的情况
散列表查找
例题:
已知一组关键字(19,14,23,1,68,20,84,27,55,11,10,79)散列函数为: H(key) = key MOD 13
,散列表长为 m = 16
,设每个记录的查找概率相等
使用平均查找长度 ASL 来衡量查找算法, ASL 取决于:
-
散列函数
-
处理冲突的方法
-
散列表的装填因子α(
α=表中填入记录数/哈希表的长度
, α越大,表中记录数越多,说明表装得越满,发生冲突的可能性就越大,查找时比较次数就越多。)
结论:
- 散列表技术具有很好的平均性能,优于一些传统的技术
- 链地址法优于开地址法
- 除留余数法作散列函数优于其它类型函数
TO BE CONTINUED…
相关文章:
数据结构与算法基础(青岛大学-王卓)(8)
哎呀呀,sorry艾瑞波地,这次真的断更一个月了,又发生了很多很多事情,秋风开始瑟瑟了,老父亲身体查出肿瘤了,有病请及时就医,愿每一个人都有一个健康的身体,God bless U and FAMILY. 直…...
【生物信息学】使用谱聚类(Spectral Clustering)算法进行聚类分析
目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 3. IDE 三、实验内容 0. 导入必要的工具 1. 生成测试数据 2. 绘制初始数据分布图 3. 循环尝试不同的参数组合并计算聚类效果 4. 输出最佳参数组合 5. 绘制最佳聚类结果图 6. 代码整合 一、实验介绍…...
CSS基础语法第二天
目录 一、复合选择器 1.1 后代选择器 1.2 子代选择器 1.3 并集选择器 1.4 交集选择器 1.4.1超链接伪类 二、CSS特性 2.1 继承性 2.2 层叠性 2.3 优先级 基础选择器 复合选择器-叠加 三、Emmet 写法 3.1HTML标签 3.2CSS 四、背景属性 4.1 背景图 4.2 平铺方式 …...
ThreeJS - 封装一个GLB模型展示组件(TypeScript)
一、引言 最近基于Three.JS,使用class封装了一个GLB模型展示,支持TypeScript、支持不同框架使用,具有多种功能。 (下图展示一些基础的功能,可以自行扩展,比如光源等) 二、主要代码 本模块依赖…...
HashMap面试题
1.hashMap底层实现 hashMap的实现我们是要分jdk 1.7及以下版本,jdk1.8及以上版本 jdk 1.7 实现是用数组链表 jdk1.8 实现是用数组链表红黑树, 链表长度大于8(TREEIFY_THRESHOLD)时,会把链表转换为红黑树,…...
Java编程技巧:swagger2、knif4j集成SpringBoot或者SpringCloud项目
目录 1、springbootswagger2knif4j2、springbootswagger3knif4j3、springcloudswagger2knif4j 1、springbootswagger2knif4j 2、springbootswagger3knif4j 3、springcloudswagger2knif4j 注意点: Api注解:Controller类上的Api注解需要添加tags属性&a…...
第三章:最新版零基础学习 PYTHON 教程(第九节 - Python 运算符—Python 中的除法运算符)
除法运算符允许您将两个数字相除并返回商,即,第一个数字或左侧的数字除以第二个数字或右侧的数字并返回商。 Python 中的除法运算符 除法运算符有两种类型: 浮点数除法整数除法(向下取整除法)整数相除时,结果四舍五入为最接近的整数,并用符号“//”表示。浮点数“/”…...
【python】导出mysql数据,输出excel!
参考https://blog.csdn.net/pengneng123/article/details/131111713 import pymysql import pandas as pd #import openpyxl import xlsxwriterdb pymysql.connect(host"10.41.241.114", port***,user***,password***,charsetutf8mb4 )cursor db.cursor() #创建游…...
【Java 进阶篇】JDBC ResultSet 遍历结果集详解
在Java数据库编程中,经常需要执行SQL查询并处理查询结果。ResultSet(结果集)是Java JDBC中用于表示查询结果的关键类之一。通过遍历ResultSet,我们可以访问和操作从数据库中检索的数据。本文将详细介绍如何使用JDBC来遍历ResultSe…...
华为数通方向HCIP-DataCom H12-831题库(单选题:161-180)
第161题 某台路由器Router LSA如图所示,下列说法中错误的是? A、本路由器已建立邻接关系 B、本路由器为DR C、本路由支持外部路由引入 D、本路由器的Router ID为10.0.12.1 答案: B 解析: 一类LSA的在transnet网络中link id值为DR的route id ,但Link id的地址不是10.0.12.…...
【VsCode】SSH远程连接Linux服务器开发,搭配cpolar内网穿透实现公网访问
文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…...
java并发编程 守护线程 用户线程 main
经常使用线程,没有对守护线程和用户线程的区别做彻底了解 下面写4个例子来验证一下 源码如下 /* Whether or not the thread is a daemon thread. */ private boolean daemon false;/*** Marks this thread as either a {linkplain #isDaemon daemon} thread*…...
wxWidgets(1):在Ubuntu 环境中搭建wxWidgets 库环境,安装库和CodeBlocks的IDE,可以运行demo界面了,继续学习中
1,选择使用 wxWidgets 框架 选择这个主要是因为完全的开源,不想折腾 Qt的库,而且打包的文件比较大。 网络上面有很多的对比,而且使用QT的人比较多。 但是我觉得wxwidgets 更加偏向 c 语法本身,也有助学习C。 没有太多…...
[VIM]VIM初步学习-3
3-1 编写 vim 配置,我的 vim 我做主_哔哩哔哩_bilibili...
RocketMQ Dashboard说解
RocketMQ Dashboard 是 RocketMQ 的管控利器,为用户提供客户端和应用程序的各种事件、性能的统计信息,支持以可视化工具代替 Topic 配置、Broker 管理等命令行操作。 介绍 功能概览 面板功能运维修改nameserver 地址; 选用 VIPChannel驾驶舱查看 …...
【RabbitMQ实战】05 RabbitMQ后台管理
一、多租户与权限 1.1 vhost的概念 每一个 RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(virtual host),简称为 vhost。每一个 vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换器及绑定关系等,并且它拥…...
PHP8中final关键字的应用-PHP8知识详解
在PHP8中,final的中文含义是最终的、最后的意思。被final修饰过的类和方法就是“最终的版本”。 如果关键字final放在类的前面,则表示该类不能被继承。 如果关键字final放在方法的前面,则表示该 方法不能被重新定义。 如果有一个类的格式为…...
基于Java的校园失物招领平台设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…...
〔024〕Stable Diffusion 之 模型训练 篇
✨ 目录 🎈 训练集准备🎈 训练集预处理🎈 数据清洗🎈 下载训练源码🎈 训练文件配置🎈 脚本运行🎈 实战测试🎈 训练集准备 声明: 该文中所涉及到的女神图片均来自于网络,仅用作技术教程演示,图片已码一般同一个训练集需要准备 20~40 张不同角度的照片,当然可…...
【MySQL入门到精通-黑马程序员】MySQL基础篇-DML
文章目录 前言一、DML-介绍二、DML-添加数据三、DML-修改数据四、DML-删除数据总结 前言 本专栏文章为观看黑马程序员《MySQL入门到精通》所做笔记,课程地址在这。如有侵权,立即删除。 一、DML-介绍 DML(Data Manipulation Language…...
【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDxLDxR)?
将内存中的数据搬到 NEON 寄存器,有很多指令可以完成,熟悉这些指令是必须的。 1 LD1 (multiple structures) 将多个单元素结构加载到一个,两个,三个或四个寄存器上。该指令从内存中加载多个单元结构,并将结果写入一、二、三或四个 SIMD&FP 寄存器。 无偏移 一个寄存…...
华为云云耀云服务器L实例评测 | 实例场景体验之搭建个人博客:通过华为云云耀云服务器构建个人博客
华为云云耀云服务器L实例评测 | 实例场景体验之搭建个人博客:通过华为云云耀云服务器构建个人博客 介绍华为云云耀云服务器 华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例) 华为云云耀云服务器是什么华为云云耀…...
问题记录 springboot 事务方法中使用this调用其它方法
原因: 因为代理对象中调用了原始对象的toString()方法,所以两个不同的对象打印出的引用是相同的...
【Spring Cloud】Ribbon 实现负载均衡的原理,策略以及饥饿加载
文章目录 前言一、什么是 Ribbon二、Ribbon 实现负载均衡的原理2.1 负载均衡的流程2.2 Ribbon 实现负载均衡的源码剖析 三、Ribbon 负载均衡策略3.1 负载均衡策略3.2 演示 Ribbon 负载均衡策略的更改 四、Ribbon 的饥饿加载4.1查看 Ribbon 的懒加载4.2 Ribbon 的饥饿加载模式 前…...
Linux下基本指令(上)
文章内容: 1. ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 单个ls显示当前目录下的文件和目录 常用选项&#…...
C++ 并发编程实战 第十一章 多线程应用的测试和除错
目录 11.1 与并发相关的错误类型 11.1.1 不必要的阻塞 11.1.2 条件竞争 11.2 定位并发错误的技术 11.2.1 代码审阅——发现潜在的错误 11.2.2 通过测试定位并发相关的错误 11.2.3 可测试性设计 11.2.4 多线程测试技术 11.2.5 构建多线程测试代码 11.2.6 测试多线程代…...
Redis实现API访问频率限制
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
BGP服务器租用价格表_腾讯云PK阿里云
BGP云服务器像阿里云和腾讯云均是BGP多线网络,速度更快延迟更低,阿里云BGP服务器2核2G3M带宽优惠价格108元一年起,腾讯云BGP服务器2核2G3M带宽95元一年起,阿腾云分享更多云服务器配置如2核4G、4核8G、8核16G等配置价格表如下&…...
时序分解 | Matlab实现SSA-VMD麻雀算法优化变分模态分解时间序列信号分解
时序分解 | Matlab实现SSA-VMD麻雀算法优化变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现SSA-VMD麻雀算法优化变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 SSA-VMD麻雀搜索算法SSA优化VMD变分模态分解 可直接运行 分解效果好…...
【CSS如何实现双飞翼布局】
双飞翼布局是一种基于浮动布局的设计模式,主要用于实现三栏布局。它的主要特点是左右两列是浮动的,中间一列使用margin负值来达到“自适应”的效果。这种布局模式可以避免使用嵌套的div,同时也可以保证页面的语义结构清晰。以下是实现双飞翼布…...
wordpress做的网站吗/seo诊断书案例
msvcr110.dll丢失怎么办呢?下文小编就为大家带来msvcr110.dll丢失修复的解决方法,很多朋友在运行某软件或编译程序时提示缺少、找不到msvcr110.dll等类似提示,下面就和小编一起去看下解决方法吧。msvcr110.dll下载地址:msvcr110.dll_丢失msv…...
制作网站开发/电脑培训班零基础网课
知名企业家、同时也是 NBA 小牛队的老板马克库班(Mark Cuban)曾说过一句话:人工智能,深度学习和机器学习,不论你现在是否能够理解这些概念,你都应该学习。否则三年内,你就会像灭绝的恐龙一样被社…...
设计类专业网站/搜索数据
静态方法装饰器 完全面向对象的程序中,如果存在某个函数既和对象无关也和类无关,就用staticmethod方法, 在调用此方法的时候只需要加上类名即可,说白了就是强行面向对象....把不是对象的方法也强行塞进对象里面 1 class Login:2 de…...
廊坊网站建设公司哪个好/阿里指数查询
原题目 题目一:pow(x,n): 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解…...
如何在别人网站挂黑链/教育培训机构加盟十大排名
php中文网最新课程每日17点准时技术干货分享直接写入cache模块中,生成控制器namespace app\cache\controller;use think\Controller;use think\Cache;具体方法如下:public function Index(){return $this->fetch();}//清除模版缓存不删除cache目录;pu…...
北京手机模板建站/广州百度推广优化排名
2017年计算机等级考试已经结束,出国留学网为考生们整理了2018年计算机二级考试《C语言》考点,希望能帮到大家,想了解更多资讯,请关注我们,小编会第一时间更新哦。2018年计算机二级考试《C语言》考点:循环结…...