- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“数据结构和算法II”课程实验报告
实验名称:查找和排序算法的实现
班级 姓名 学号 实验日期:
实验机时:2 学时 实验成绩:
-------------------------------------------------------------------------------
实验目的:
掌握有序表、无序表查找的基本思想及存储、运算的实现
熟练掌握常用排序算法的基本思想及实现
深刻理解各种算法的特点,并加以灵活应用
加深对查找和排序的理解,逐步培养解决实际问题的编程能力
加深对图的理解,逐步培养解决实际问题的编程能力实验内容:
(1)基本实验内容:
建立一个无序表并实现其上的顺序查找;建立一个有序表并实现其上的折半查找;
实现插入排序、起泡排序、快速排序和希尔排序的基本算法;
(2) 扩展实验内容:
建立二叉排序树并在其上查找指定关键字。
程序及注释:
1.顺序查找与二分法查找:
#includestdio.h
#includestdlib.h
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int status ;
typedef int ElemType ;
typedef struct{
ElemType *elem;
int length,listsize;
}SqList;
int n;
status InitList(SqList L)//初始化
{L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem) exit(OVERFLOW);
L.listsize=LIST_INIT_SIZE;
L.length=0;
return OK;}
status Build(SqList L)//建立表
{int i;
printf(请输入元素个数n和n个元素\n);
scanf(%d,n);
if(nLIST_INIT_SIZE)//如果n大于当前空间
{L.elem=(ElemType *)realloc(L.elem,(n+LISTINCREMENT)*sizeof(ElemType));
if(!L.elem) exit(OVERFLOW);
L.listsize=n+LISTINCREMENT;}
for(i=0;in;i++)
scanf(%d,L.elem+i);
L.length=n;
return OK;}
void Sort(SqList L)//冒泡排序(升序)
{int i,j,t;
for(i=1;iL.length;i++)
for(j=0;jL.length-i;j++)
{if(*(L.elem+j)*(L.elem+j+1))
{t=*(L.elem+j);
*(L.elem+j)=*(L.elem+j+1);
*(L.elem+j+1)=t;}}}
void sunxv(SqList L,int x)//顺序查找函数
{ int i,k=0;
for(i=0;in;i++)
{ if(x==*(L.elem+i))
{printf(已找到您查找的元素:%d\n,x);k=1;break;} }
if(k==0)
printf(未找到您查找的元素\n);}
int erfen(SqList L,int x)//二分法查找函数
{ int left,mid,right;
left=0;right=n-1;
while(left=right)
{ mid=(left+right)/2;
if(*(L.elem+mid)x)
left=mid+1;
else if(*(L.elem+mid)x)
right=mid-1;
else
{printf(已找到您查找的元素:%d\n,x);return 0;}}
printf(未找到您查找的元素\n);}
int main()
{int op,x,sign=1;
SqList L,Lb;
InitList(L);
Build(L);
Sort(L);
while(sign)
{printf(请选择要执行的查找方式:\n 【1】顺序查找\n 【2】二分查找\n 【0】退出\n);
scanf(%d,op)
您可能关注的文档
- 第五次课-女性生殖系统解读.ppt
- 第五单元测试题解读.doc
- 湘教版九年级第二单元第一节《共同的问题,共同的选择》讲述.ppt
- 第五讲:版面设计解读.ppt
- 第五讲_园林苗木嫁接繁殖解读.ppt
- 第五讲-火场逃生方法-2解读.pptx
- 第五讲-火场逃生方法-3解读.pptx
- 第五讲外文全文数据库解读.ppt
- 第五节两栖动物和爬行动物解读.ppt
- 物联网在智慧校园中的应用解读.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 2025年高考数学模拟卷(四)含答案及解析.pdf VIP
- 急性呼吸循环衰竭的早期识别与救治(共88张PPT)【88页】.pptx VIP
- 2023年河南省普通高校对口招生考试电子类专业课试卷.pdf VIP
- 院感及院感管理的基本概念.ppt VIP
- 维生素d3与骨骼健康课件.ppt
- 重点项目信息管理平台建设方案.docx
- 2025年高考数学模拟卷(三)含答案及解析.pdf VIP
- 河师大焦争鸣张万琴版线性代数答案解析.pdf VIP
- Unit4NaturalDisastersListeningandSpeaking课件高中英语人教版22.pptx
- 接受人生的荒谬是强大还是懦弱的表现?辩论赛 正方辩词一辩、二辩、三辩、四辩发言稿.docx
文档评论(0)