版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安交通大学计教中心西安交通大学计教中心查找基本概念查找基本概念 查找表查找表: : 由同一类数据构成的用于查找的集合被称由同一类数据构成的用于查找的集合被称作查找表。作查找表。 查找表是具有一定存储结构的数据集合,比如顺序查找表是具有一定存储结构的数据集合,比如顺序表结构、链式结构、树形结构等。表结构、链式结构、树形结构等。 查找往往根据数据元素的某个属性进行。例如根据查找往往根据数据元素的某个属性进行。例如根据学号查找学号查找某个学生记录。某个学生记录。这种被用于查找的元素属这种被用于查找的元素属性一般称为性一般称为关键字关键字,它往往可以唯一标识一个元素。,它往往可以唯一标识一个元素。
2、静态查找表静态查找表: : 查找表一旦建立,在以后的查找过查找表一旦建立,在以后的查找过程中就不会改变。它所对应的查找算法属于静态程中就不会改变。它所对应的查找算法属于静态查找技术。查找技术。 动态查找表:动态查找表:查找表建立后,在后来的查找过程查找表建立后,在后来的查找过程中仍会改变查找表的内容。它所对应的查找算法中仍会改变查找表的内容。它所对应的查找算法属于动态查找技术。属于动态查找技术。 动态查找的例子词汇统计问题。就是统计一篇文章中使用了多少词汇以及每个词汇的使用次数。解决方法是先建立一个空的查找表,以后每读到一个词就在查找表中查询一下,如果该词汇存在则将其使用次数加一,否则将新词插
3、入到查找表中并设使用次数为一次。显然,这个查找表是不断扩张的。 : 为了确定数据元素在查找表中的位置,需要将给为了确定数据元素在查找表中的位置,需要将给定值和表中的数据元素的关键字进行比较的次数的定值和表中的数据元素的关键字进行比较的次数的期望值。平均查找长度期望值。平均查找长度asl的计算方法为:的计算方法为: niiicpasl1n 为表长;为表长; pi 为查找第为查找第i个元素的概率。个元素的概率。ci为找到该记为找到该记录时,曾和给定值比较过的数据元素的个数。录时,曾和给定值比较过的数据元素的个数。 在等概率条件下在等概率条件下( pi=1/n)这时平均查找长度这时平均查找长度为:为
4、:11niip其中其中:niicnasl11静态查找技术静态查找技术 假设静态顺序查找表的存储结构为:假设静态顺序查找表的存储结构为: struct sstableelemtype *data; /存储空间地址存储空间地址int length; /表的长度表的长度 ; 顺序查找表的元素存放在顺序查找表的元素存放在data0data0至至datalength-1datalength-1中。中。1顺序查找 顺序查找的方法是从表的一端开始,逐顺序查找的方法是从表的一端开始,逐一比较给定的数据一比较给定的数据keykey和表中数据元素的和表中数据元素的关键字关键字x x的值,若两个数据一致则查找成的值
5、,若两个数据一致则查找成功,同时给出该数据元素在表中的位置,功,同时给出该数据元素在表中的位置,否则查找失败。否则查找失败。 顺序查找算法顺序查找算法c+c+语言描述如下:语言描述如下:int sqsearch(sstable &l, keytype key) int k = 0;while(kl.length&l.datak.x!=key) k+; if (kl.length) return k+1; /返回数据元素位置返回数据元素位置else return 0; 该算法若查找成功,则函数返回值为目标元素在表中该算法若查找成功,则函数返回值为目标元素在表中的位置,否则返回的位
6、置,否则返回0 0。这里元素位置从。这里元素位置从1 1开始算起。开始算起。 在在上述算法中为了避免上述算法中为了避免“出界出界”,需在循,需在循环中作环中作kl.length 的判断,这使算法的执行的判断,这使算法的执行时间几乎增加一倍。为提高效率,对查找表时间几乎增加一倍。为提高效率,对查找表的结构改动如下:的结构改动如下: 适当设置数组长度,将元素存于适当设置数组长度,将元素存于data1data1至至datalength-1datalength-1中,在中,在0 0号单元预存待查找号单元预存待查找数据数据keykey作为监视哨。改写查找过程为从后往作为监视哨。改写查找过程为从后往前查找
7、。前查找。因为循环查找过程至少会在因为循环查找过程至少会在0号单元停止,号单元停止,这样就不必在每一次循环中都判别是否数组这样就不必在每一次循环中都判别是否数组出界。出界。改进的顺序查找算法改进的顺序查找算法c+语言描述如下:语言描述如下:int sqsearch(sstable &l, keytype key) l.data0.x= key; /监视哨监视哨int k = l.length;while(l.datak.x!=key) k=k-1; /从后往前找从后往前找return k; /找不到时,找不到时,k为为0 该算法若查找成功,则函数返回值为目标元素该算法若查找成功,则函数
8、返回值为目标元素在表中的位置,否则返回在表中的位置,否则返回0 0。 下面分析一下改进的顺序查找算法的时间性能。下面分析一下改进的顺序查找算法的时间性能。对于改进的顺序查找而言,找到第对于改进的顺序查找而言,找到第i个元素的比较个元素的比较次数次数ci = n-i+1,所以在等概率查找的情况下,顺,所以在等概率查找的情况下,顺序表查找的平均查找长度为:序表查找的平均查找长度为:21111ninnaslni2折半查找(也称二分查找 )顺序查找表的查找算法简单,但平均查找长度较顺序查找表的查找算法简单,但平均查找长度较大。如果顺序查找表的元素按照关键字的值有序大。如果顺序查找表的元素按照关键字的值
9、有序存放,那么可利用高效的折半查找来完成查询。存放,那么可利用高效的折半查找来完成查询。假定元素按关键字的值假定元素按关键字的值排列,折半查找排列,折半查找的思路是的思路是不断重复这一过程直到查找成功,或者直到查找不断重复这一过程直到查找成功,或者直到查找区间缩小为一个元素时却仍未找到目标,则查找区间缩小为一个元素时却仍未找到目标,则查找失败。失败。 折半查找算法的步骤描述如下折半查找算法的步骤描述如下: 设置查找区间初值,设下界设置查找区间初值,设下界low = 0low = 0,设上,设上界界high = length-1high = length-1。 若若lowhighlowhigh则
10、计算中间位置则计算中间位置mid = (low mid = (low +high)/2+high)/2。 若若keydatamidkeydatamidkeydatamid,则设,则设low = mid+1low = mid+1并继续执并继续执行步骤行步骤;若若key=datamidkey=datamid则查找成功,返回目标元素位则查找成功,返回目标元素位置置mid+1mid+1(位置从(位置从1 1计数)。计数)。 若当若当low=highlow=high时,时,keykey!=datamid=datamid则查找失则查找失败,返回败,返回0 0。 折半查找算法的折半查找算法的c+c+语言描述
11、如下:语言描述如下:int binsearch( sstable &l, keytype key ) int low, high, mid; low = 0; high = l.length-1; /设置查找区间初值设置查找区间初值 while (low = high) mid = (low + high) / 2;if(key=l.datamid.x) return mid+1; /查找成功查找成功else if( keyl.datamid.x ) high = mid-1; /继续在前半区间进行查找继续在前半区间进行查找else low = mid + 1; /继续在后半区间进行查
12、找继续在后半区间进行查找 return 0; /不存在待查元素不存在待查元素 对给定有序数列对给定有序数列 5,6,11,17,21,23,28,30,32,40进行半查找算法,查找关键字值为进行半查找算法,查找关键字值为30的数据的数据元素。则查找过程如下:元素。则查找过程如下: 第第1次:次: 5,6,11,17,21,23,28,30,32,40 low=0 mid=(0+9)/2 =4 high=9第第2次:次: 5,6,11,17,21,23,28,30,32,40 low=5 mid=7 high=9等概率情况下其平均查找长度等概率情况下其平均查找长度为为1) 1(log2nasl
13、 即即 o(log2n)动态查找技术动态查找技术 动态查找技术所依赖的查找表以树状结构动态查找技术所依赖的查找表以树状结构居多,例如二叉排序树、居多,例如二叉排序树、b+b+树、树、b-b-树等。树等。它们的共同特点是结构灵活,易于实现插入、它们的共同特点是结构灵活,易于实现插入、删除等操作。删除等操作。这里主要介绍简单易用的二叉这里主要介绍简单易用的二叉排序树。排序树。 二叉排序树的定义 一棵二叉排序树 建立了二叉排序树之后,若查找过程中不插入或删建立了二叉排序树之后,若查找过程中不插入或删除元素除元素( (静态查找静态查找) ),则在二叉排序树中查找方法为:则在二叉排序树中查找方法为:1)
14、1)将给定数据将给定数据keykey与根结点关键字与根结点关键字x x进行比较,若进行比较,若key=xkey=x则查找成功;则查找成功; 2)2)若若keyxkeyxkeyx,则与右子树的根结点的关键字值进行,则与右子树的根结点的关键字值进行比较。比较。 重复上述步骤,直到查找成功;或者一直比较到叶重复上述步骤,直到查找成功;或者一直比较到叶子结点也找不到目标元素,则查找失败。子结点也找不到目标元素,则查找失败。可定义二叉排序树结点如下:可定义二叉排序树结点如下:typedef struct binnode elemtype x;/关键字关键字struct binnode *left, *r
15、ight;*binnodeptr; 二叉排序树查找算法(二叉排序树查找算法(静态查找静态查找)c+语言描述:语言描述: binnode *search_btree(binnodeptr &p, keytype key) while(p!=null & p-x!=key ) if( keyx ) p=p-left; else p=p-right; returnp; 进行进行动态查找动态查找时,查找过程还涉及到插入新时,查找过程还涉及到插入新结点。其方法为:结点。其方法为:(1)(1)在二叉排序树中查找数据在二叉排序树中查找数据key(key(按前一页的方按前一页的方法法) ),若
16、查找成功则程序中止,若查找失败则转,若查找成功则程序中止,若查找失败则转入下面插入过程入下面插入过程(2)(2)(2)(2)以数据以数据keykey作为关键字建立新结点,假定查找作为关键字建立新结点,假定查找过程最后到达某叶子结点,比较过程最后到达某叶子结点,比较keykey与此叶子结与此叶子结点的关键字,若点的关键字,若keykey小于后者则将新结点插入为小于后者则将新结点插入为叶子结点的左孩子,若叶子结点的左孩子,若keykey大于后者则新结点插大于后者则新结点插入为叶子结点的右孩子。入为叶子结点的右孩子。 动态查找动态查找过程也是过程也是生成生成二叉排序树的过程。假定二叉排序树的过程。假
17、定由整数序列由整数序列10,6,19,22,8,2生成一棵二叉生成一棵二叉排序树,可以采用逐个元素插入的方法实现。排序树,可以采用逐个元素插入的方法实现。(1) 首先将首先将10作为根结点作为根结点(2) 然后插入然后插入6时,通过比较知时,通过比较知610,所以将,所以将6作作为为10的左孩子插入;的左孩子插入;(3) 同理将同理将19作为作为10的右孩子插入;的右孩子插入;(4) 整数整数22通过和通过和10、19比较后,作为比较后,作为19的右孩的右孩子插入。子插入。(5) 依次插入剩余的其他元素依次插入剩余的其他元素 二叉排序树二叉排序树动态查找动态查找算法算法c+c+语言描述如下:语
18、言描述如下:binnode* search_ insert (binnodeptr &p, keytype key) binnode *pre=null; / 查找失败,插入新结点查找失败,插入新结点 ( 见下一页见下一页 ) (接上一页内容)(接上一页内容) if(p=null) /新结点不是根,则作为叶子插入新结点不是根,则作为叶子插入 return p; /返回找到的结点或插入的新结点的指针返回找到的结点或插入的新结点的指针 例例字符统计程序字符统计程序该程序可统计由用户输入的一个字符串中各种该程序可统计由用户输入的一个字符串中各种字符的使用次数。程序算法是:字符的使用次数。程序
19、算法是:首先建立空的首先建立空的二叉排序树,每次读入字符后就在树表中查询,二叉排序树,每次读入字符后就在树表中查询,若找到则将该字符使用次数加一;否则,将读若找到则将该字符使用次数加一;否则,将读入的字符插入二叉排序树。入的字符插入二叉排序树。为记录字符使用次为记录字符使用次数,在二叉树结点定义中增加了使用次数属性。数,在二叉树结点定义中增加了使用次数属性。读完整个字符串后用中序遍历法读出每个字符读完整个字符串后用中序遍历法读出每个字符使用次数。使用次数。 例例2.5 2.5 利用二叉排序树统计字符出现次数利用二叉排序树统计字符出现次数 排序基本概念排序基本概念 排序是计算机内经常进行的一种操
20、作,其目的是将一组同类型的记录序列调整为按照元素关键字有序的记录序列。例如将学生记录按学号排序,将课程记录按课程编码排序。 排序的形式化定义为:假设含排序的形式化定义为:假设含n个记录的序列个记录的序列为为 r1, r2,,rn ,其相应的关键字序列为,其相应的关键字序列为 k1, k2,,kn 。这些关键字相互之间可以进行比较,。这些关键字相互之间可以进行比较,即 在 它 们 之 间 存 在 着 这 样 一 个 关 系即 在 它 们 之 间 存 在 着 这 样 一 个 关 系kp1kp2kpn,按此固有关系将最初的记录序,按此固有关系将最初的记录序列重新排列为列重新排列为 rp1, rp2,
21、 ,rpn 的操作称作排的操作称作排序。序。 排序分为排序分为内部排序内部排序和和外部排序外部排序。若整个排序过程不需要访问外存便能若整个排序过程不需要访问外存便能完成,则称此类排序问题为完成,则称此类排序问题为内部排序内部排序;反之,若参加排序的记录数量很大,反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完整个序列的排序过程不可能在内存中完成,则称此类排序问题为成,则称此类排序问题为外部排序外部排序。本节只讨论内部排序的若干方法本节只讨论内部排序的若干方法 内部排序方法有很多类型。内部排序方法有很多类型。 按方法实现特点可分为按方法实现特点可分为插入排序、选择插入排序、选择
22、排序、交换排序、归并排序排序、交换排序、归并排序等等;等等; 按方法效率可分为简单的排序法、先进按方法效率可分为简单的排序法、先进的排序法等等。的排序法等等。简单的排序法简单的排序法包括插入包括插入排序、选择排序、冒泡排序等,它们的排序、选择排序、冒泡排序等,它们的时间复杂度为时间复杂度为o(n2)。而。而先进的排序法先进的排序法包包括括快速排序、归并排序等,快速排序、归并排序等,它们的它们的时间时间复杂度复杂度大约大约为为o(nlog2n)。 1、直接插入排序 直接插入排序方法的基本思想是:直接插入排序方法的基本思想是:将记录将记录分为有序和无序两个序列,假定当插入第分为有序和无序两个序列,
23、假定当插入第k个个记录时,前面的记录时,前面的r1,r2,rk-1已经排好序,已经排好序,而后面的而后面的rk,rk+1,rn仍然无序。这时用仍然无序。这时用rk的关键字与的关键字与rk-1的关键字进行比较的关键字进行比较,若若rk小于小于rk-1则将则将rk-1向后移动一个单元;再用向后移动一个单元;再用rk与与rk-2比较,若比较,若rk小于小于rk-2则将则将rk-2向后移动一个单向后移动一个单元,依次比较下去,直到找到插入位置即将元,依次比较下去,直到找到插入位置即将rk插入。初始状态可以认为有序序列为插入。初始状态可以认为有序序列为r1。 直接插入直接插入排序执行过程排序执行过程显示
24、在序列显示在序列3535,2222,1616,1919,2222 上应用插入排序上应用插入排序的过程,为了对序列中相同记录加以区别,使用了的过程,为了对序列中相同记录加以区别,使用了下划线。下划线。 直接插入排序算法直接插入排序算法c+c+语言描述:语言描述:void insertsort( int v , int n ) int i, j, temp; for( i=1; i0 & tempvj-1) /从后向前依次比较,找到插入位置从后向前依次比较,找到插入位置 vj=vj-1; j-;vj = temp; /插入元素插入元素 2、简单选择排序简单选择排序的基本思想是:简单选择排序
25、的基本思想是:将记录分为将记录分为有序和无序两个序列,假定第有序和无序两个序列,假定第k趟排序时,趟排序时,前面的前面的r1,r2,,rk-1已经排好序,而后已经排好序,而后面的面的rk,rk+1,,rn仍然无序。则选择仍然无序。则选择rk到到rn中的关键字最小的记录与中的关键字最小的记录与rk交换,交交换,交换后有序序列增加了第换后有序序列增加了第k个记录。当第个记录。当第n-1趟选择执行完趟选择执行完,待排序记录只剩下待排序记录只剩下1个个,就不就不用再选了。在初始状态可以认为有序序列用再选了。在初始状态可以认为有序序列为空。为空。 在序列在序列3535,2222,1616,1919,22
26、22 上应用简单选择排上应用简单选择排序的过程。序的过程。 简单选择排序算法简单选择排序算法c+c+语言描述:语言描述: void selectsort( int v , int n ) int i,j,k,temp; for( i=0; in-1; i+ ) int k = i; /k存放最小记录位置存放最小记录位置 for( j=i+1; jn; j+) /找最小记录位置找最小记录位置 if( vjvj+1 ) /交换两个相邻元素交换两个相邻元素 temp=v j ; vj=vj+1; vj+1=temp; 4、快速排序 快速排序的基本思想是:快速排序的基本思想是:任取待排序序列中某个任取
27、待排序序列中某个记录记录s(例如取第一个记录例如取第一个记录)作为基准,经过一系作为基准,经过一系列比较和交换,将整个序列划分为如下形式:列比较和交换,将整个序列划分为如下形式:左侧子序列左侧子序列 s 右侧子序列右侧子序列 并且满足以下两点:并且满足以下两点: 左侧子序列中所有记录的关键字都小于或左侧子序列中所有记录的关键字都小于或等于基准对象等于基准对象s的关键字;的关键字; 右侧子序列中所有记录的关键字都大于或右侧子序列中所有记录的关键字都大于或等于基准对象等于基准对象s的关键字的关键字 然后分别对左右两个子序列重复施行上述方法,然后分别对左右两个子序列重复施行上述方法,直到排序完成。直
28、到排序完成。 下列快速排序中划分序列的算法对下列快速排序中划分序列的算法对vlow与与vhigh之间的元素之间的元素进行划分,利用了序列第一个记录作为基准,最终将进行划分,利用了序列第一个记录作为基准,最终将low与与high区间中的序列划分为左右两个子序列,将基准对象放到适区间中的序列划分为左右两个子序列,将基准对象放到适当位置并返回其位置的下标。当位置并返回其位置的下标。int partition( int low, int high ) int pivot = vlow; /基准对象基准对象pivot位置为位置为low while(lowhigh) while(lowpivot) hig
29、h-; /右边界下移右边界下移 vlow=vhigh; /小于小于pivot的放到左侧的放到左侧 while(lowhigh & vlowbf1j5n9qcugyk$o(r+vz;dg2k6oasewhzl%p)twa:e0i4m8qbtfxj!n*q-uy.cg1j5n9rdvhyk$o(s=wz;dh3l7oasewi#m%p)txbe0i4m8qcufxj!n*r+uy.cg2k5n9rdvhzk$o(s=wbf1i4m8qcugxj!n*r+vy.cg2k6o9rdvhzl%o(s=wbf1j5m8qcugyk!n*r+vz;cg2k6oardvhzl%p)s=wbf1j5n8
30、qcugyk$o*r+vz;dg2k6oasevhzl%p)twa:e0i4m8pbtfxj!n*q-uy.cf1j5n9rdvgyk$o(s=wz;dh3l6oasewi#m%p)txb:e0i4m8qctfxj!n*r+uy.cg2j5n9rdvhzk$o(s=wbf0i4m8qcugxj!n*r+vy.cg2k6n9rdvhzl%o(s=wbf1j4m8qcugyk!n*r+vz.cg2k6oardvhzl%p(s=wbf1j5n8qcugyk$n*r+vz;dg2k6oasevhzl%p)t=wa:e0i4l7pbtfxj#m&q-uy.bf1j5n9rcugyk$o(r+vz
31、;dh2k6oasewhzl%p)txb:e0i4m8qbtfxj!n*r-uy.cg2j5n9rdvhyk$o(s=wbf0i4m8qcufxj!n*r+vy.cg2k5n9rdvhzl$o(s=wbf1i4m8qcugyj!n*r+vz.cg2k6o9rdvhzl%p(s=wbf1j5m8qcugyk$n*r+vz;cg2k6oasdvhzl%p)t=wbf1j5n9qcugyk$o(r+vz;dg2k6oasewhzl%p)twa:e0i4m7pbtfxj!r+vz;cg2k6oasdvhzl%p)t=wbf1j5n9qcugyk$o(r+vz;dg2k6oasewhzl%p)twa:e
32、0i4m8qbtfxj!n*q-uy.cg1j5n9rdvhyk$o(s=wz;dh3l7oasewi#m%p)txbe0i4m8qcufxj!n*r+uy.cg2k5n9rdvhzk$o(s=wbf1i4m8qcugxj!n*r+vy.cg2k6o9rdvhzl%o(s=wbf1j5m8qcugyk!n*r+vz;cg2k6oardvhzl%p)s=wbf1j5n8qcugyk$o*r+vz;dg2k6oasevhzl%p)twa:e0i4m8pbtfxj!n*q-uy.cf1j5n9rdvgyk$o(s=wz;dh3l6oasewi#m%p)txb:5n9rcugyk$o(s+vz;dh2
33、k6oasewizl%p)txb:e0i4m8qctfxj!n*r-uy.cg2j5n9rdvhzk$o(s=wbf0i4m8qcugxj!n*r+vy.cg2k6n9rdvhzl$o(s=wbf1j4m8qcugyj!n*r+vz.cg2k6oardvhzl%p(s=wbf1j5n8qcugyk$n*r+vz;dg2k6oasdvhzl%p)t=wa:e0i4l7pbtfxj#m&q-uy.bf1j5n9qcugyk$o(r+vz;dh2k6oasewhzl%p)txb:e0i4m8qbtfxj!n*r-uy.cg1j5n9rdvhyk$o(s=wbe0i4m8qcufxj!n*r+
34、vy.cg2k5n9rdvhzl$o(s=wbf1i4m8qcugyj!n*r+vy.cg2k6o9rdvhzl%p(s=wbf1j5m8qcugyk$n*wbf1i4m8qcugyj!n*r+vy.cg2k6o9rdvhzl%p(s=wbf1j5m8qcugyk$n*r+vz;cg2k6oasdvhzl%p)s=wbf1j5n9qcugyk$o*r+vz;dg2k6oasewhzl%p)twa:e0i4m8qbtfxj!n*q-uy.cg1j5n9rdvgyk$o(s=wz;dh3l7oasewi#m%p)txbe0i4m8qctfxj!n*r+uy.cg2k5n9rdvhzk$o(s=wbf1i4m8qcugxj!n*r+vy.cg2k6n9rdvhzl%o(s=wbf1j4m8qcugyk!n*r+;dh3l7pasewi#m&q)txbf0i4m8qcugxj!n*r+vy.cg2k6n9rdvhzl%o(s=wbf1j4m8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院室内保洁合同范例
- 康复医学治疗技术(士)《专业实践能力》模拟考试题
- 宾馆墙画合同范例
- 2025年泰州下载货运从业资格证模拟考试
- 电煤居间合同范例
- 游戏账号借用合同范例
- 广告门面转让合同范例
- 天府新区航空旅游职业学院《热工基础理论》2023-2024学年第一学期期末试卷
- 气动接口销售合同范例
- 店铺个人转让合同范例
- T-CFIAS 3010-2023 饲料添加剂 乙氧基喹啉
- PS平面设计练习题库(附参考答案)
- 混合云架构整体设计及应用场景介绍
- 《盘点程序说明会》课件
- 期末素养综合测评卷(二)2024-2025学年鲁教版(五四制)六年级数学上册(解析版)
- 六年级上册分数乘除混合运算300题带答案
- 北京市西城区2022-2023学年六年级上学期语文期末试卷(含答案)
- 小王子-英文原版
- 考核19(西餐)试题
- 2024安全生产法解读
- 吉林省长春市(2024年-2025年小学五年级语文)人教版期末考试(上学期)试卷及答案
评论
0/150
提交评论