冒泡排序和二分查找实验报告Word下载.docx

上传人:b****6 文档编号:16392531 上传时间:2022-11-23 格式:DOCX 页数:8 大小:73.35KB
下载 相关 举报
冒泡排序和二分查找实验报告Word下载.docx_第1页
第1页 / 共8页
冒泡排序和二分查找实验报告Word下载.docx_第2页
第2页 / 共8页
冒泡排序和二分查找实验报告Word下载.docx_第3页
第3页 / 共8页
冒泡排序和二分查找实验报告Word下载.docx_第4页
第4页 / 共8页
冒泡排序和二分查找实验报告Word下载.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

冒泡排序和二分查找实验报告Word下载.docx

《冒泡排序和二分查找实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《冒泡排序和二分查找实验报告Word下载.docx(8页珍藏版)》请在冰豆网上搜索。

冒泡排序和二分查找实验报告Word下载.docx

DynamicSearchTable 

{

数据对象 

D:

D是具有相同特性的数据元素的集合。

各个数据元素均含有类型相同,可唯一标识数据元素的关键字

数据关系R:

数据元素同属一个集合。

基本操作P:

InitDSTable(&

DT);

操作结果:

构造一个空的动态查找表DT。

DestroyDSTable(&

DT)

初始条件:

动态查找表DT存在。

销毁动态查找表DT。

SearchDSTable(DT,key);

动态查找表DT存在,key为和关键字类型相同的给定值。

若DT中存在其关键字等于key的数据元素,则函数值为该元素的值或在表中的位置,否则为“空”。

InsertDSTable(&

DT,e);

动态查找表DT存在,e为待插入的数据元素。

若DT中不存在其关键字等于e.key的数据元素,则插入e到DT。

DeleteDSTable(&

DT,key);

若DT中存在其关键字等于key的数据元素,则删除之。

TraverseDSTable(DT,visit());

动态查找表DT存在,visit是对结点操作的应用函数。

按某种次序对DT的每个结点调用函数visit()一次且至多一次,一旦visit()失败,则操作失败。

}ADT 

DynamicSearchTable

3.2存储结构的定义;

二分查找

#definemaxn100

typedefstruct

intkey;

chardata[10];

}NodeType;

typedefNodeTypeSeqList[maxn];

冒泡排序

#definemaxn20

}RecType;

3.3基本操作实现:

intBinSearch(SeqListR,intn,intk)

intl=0,r=n-1,mid,count=0;

while(l<

=r)

{

mid=(l+r)2;

printf("

第%d次比较:

在[%d,%d]中比较元素R[%d]:

%d\n"

++count,l,r,mid,R[mid].key);

if(R[mid].key==k)

returnmid;

}

elseif(R[mid].key>

k)

r=mid-1;

else

l=mid+1;

return-1;

}

voidBubbleSort(RecTypeR[],intn)

inti,j,k;

RecTypetemp;

for(i=0;

i<

n-1;

++i)

for(j=n-1;

j>

i;

--j)

if(R[j].key<

R[j-1].key)

temp=R[j];

R[j]=R[j-1];

R[j-1]=temp;

i=%d,冒出的最小关键字:

%d,结果为:

"

i,R[i].key);

for(k=0;

k<

n;

++k)

%2d"

R[k].key);

\n"

);

3.4解题思路:

二分查找:

因为原本便是顺序表,是递增序列,所以在一个区间中,我们只要每次判断中间节点和被查找的关键字的大小关系,就可以判断被查找的节点在那一段区间了,然后再进行二分即可。

冒泡排序:

通过一次一次的交换,把无序序列中关键字最小的节点的值交换到前面即可。

3.5解题过程:

实验源代码如下:

3.5.1二分查找

#include<

stdio.100

intmain()

SeqListR;

intk=9;

inta[]={},i,n=10;

R[i].key=a[i];

关键字序列:

%d"

R[i].key);

查找%d的比较过程如下:

k);

if((i=BinSearch(R,n,k))!

=-1)

元素%d的位置是:

%d\n"

k,i);

元素%d不在表中\n"

return0;

3.5.2冒泡排序

stdio.20

inti,k,n=10;

inta[]={};

RecTypeR[maxn];

i<

初始关键字:

R[i].key);

BubbleSort(R,n);

最后结果:

四实验结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1