- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
淮海工学院计算机科学系
实验报告书
课程名: 《数据结构》
题 目: 查找、排序综合实验
班 级: 软件101
学 号:
姓 名:
排序、查找的应用实验报告要求
1目的与要求:
1)查找、排序是日常数据处理过程中经常要进行的操作和运算,掌握其算法与应用对于提高学生数据处理能力和综合应用能力显得十分重要。
2)本次实验前,要求同学完整理解有关排序和查找的相关算法和基本思想以及种算法使用的数据存储结构;
3)利用C或C++语言独立完成本次实验内容或题目,程序具有良好的交互性(以菜单机制实现实验程序的交互运行)和实用性;
4)本次实验在机房现场验收和平分,希望同学们认真对待,并按时完成实验任务;
5)认真书写实验报告(包括程序清单及相关实验数据与完整运行结果),并于16周周五前提交,综合实验纸质报告每班收10份。
2 实验内容或题目
题目:对记录序列(查找表):{55,13,23,72,109,67,02,78,13}分别实现如下操作:
顺序查找;
分别使用直接插入排序、冒泡排序、快速排序对原纪录序列进行排序(本次要做);
对排好序的纪录序列表进行折半查找;
利用原纪录序列建立一颗二叉排序树,并在其上实现特定关键字值结点的查找;
按照“除留余数法”哈希构造函数和线性探测再散列的冲突处理方法创建表长为m=11的哈希表(本次实验做);
实现5)创建哈希表上的查找。
看懂书上“链式基数排序”方法的分配收集排序举例,并以书上例题为例,实现这种排序方法。(选作)
3 实验步骤与源程序
#includestdio.h
#includestdlib.h
#define TRUE 1;
#define FALSE 0;
#define INFINITY 32546
#define m 11
#define NULLKEY 0
typedef int KeyType;
#define MAX 100
#includemalloc.h
typedef RecordType HashTable[m];
typedef int KeyType;
typedef struct {
KeyType key;
}RecordType;
#define ENDKEY 0
typedef struct node
{
KeyType key;
struct node *lchild,*rchild;
}BSTNode,*BSTree;
void InsSort(RecordType r[],int length)
{
int i,j;
for (i=2;i=length;i++)
{
r[0]=r[i];
j=i-1;
while (r[0].keyr[j].key)
{
r[j+1]=r[j];
j=j-1;
}
r[j+1]=r[0];
}
}
void BubbleSort(RecordType r[],int length)
{
int x,i,n,change,j;
n=length;
change=TRUE;
for(i=1;i=n-1change;++i)
{
change=FALSE;
for(j=1;j=n-i;++j)
if(r[j].keyr[j+1].key)
{
x=r[j].key;
r[j]=r[j+1];
r[j+1].key=x;
change=TRUE;
}
}
}
int QKPass(RecordType r[],int left,int right)
{
int x,low,high;
x=r[left].key;
low=left;
high=right;
while(lowhigh)
{
while(lowhigh r[high].key=x)
high--;
if(lowhigh)
{r[low]=r[high];low++;}
while(lowhighr[low].keyx)
low++;
if(lowhigh)
{r[high]=r[low];high--;}
}
r[low].key=x;
return low;
}
void QKSort(RecordType r[],int low,int high)
{
int pos;
if(lowhigh)
{
pos=QKPass(r,low,high);
QKSort(r,low,pos-1);
QKSor
您可能关注的文档
最近下载
- 电工电子技术(曹建林)全套PPT课件.pptx
- 《民宿文化与运营》课件——第四章 民宿建设.pptx VIP
- 2022版《医疗器械生产监督管理办法》考核试题及答案.docx VIP
- 10KV配电箱验收流程及规范.docx VIP
- 污水处理厂BOT项目投标文件.doc VIP
- 2025届上海浦东新区高三一模高考历史模拟试卷(含答案解析).pdf VIP
- 舒蕾上市谈判手册.docx VIP
- DB4103T 129-2021 产(商)品检验检测机构服务规范.pdf VIP
- 七猫中文网投稿申请表.pdf VIP
- 《C语言程序设计 第4版》 课件全套 索明何 第1--8章 C语言程序设计入门---应用软件设计.pptx
文档评论(0)