实验七查找Word文档下载推荐.docx
- 文档编号:4217589
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:17
- 大小:264.84KB
实验七查找Word文档下载推荐.docx
《实验七查找Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验七查找Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。
1、实验报告要按照实验报告格式规范书写。
2、实验上要写出多批测试数据的运行结果。
3、结合运行结果,对程序进行分析。
三、实验步骤
typedef
struct
//定义每个记录(数据元素)的结构
{
string
xingming;
//姓名
xingbei;
//性别
float
xuehao;
//学号
chengji1,chengji2;
//成绩1,成绩2
zong;
//总分
}RecordType;
//定义顺序表的结构
RecordType
r[MAXSIZE
+1];
//存储顺序表的向量
查找
顺序查找
从表的一端开始逐个进行记录的关键字和给定值的比较。
在这里从表尾开始并把下标为0的作为哨兵。
void
chaxun(SqList
&
ST)
//查询信息
cout<
<
"
\n************************"
endl;
~
(1)根据学号查询
~"
(2)根据姓名查询
(3)根据性别查询
(4)退出
~"
if(m==1)
顺序查找算法:
cout<
输入要查找的姓名"
cin>
>
name;
for(int
i=0;
i<
ST.length;
i++)
if(name==ST.r[i].xingming)
ST.r[i].xuehao<
"
ST.r[i].xingming<
ST.r[i].xingbei<
ST.r[i].chengji1<
ST.r[i].chengji2<
ST.r[i].zong<
a=1;
}
排序
a.直接插入排序
每步将一个待排序的记录,按其关键码大小,插入到前面已经排好序的一组记录的适当位置上,直到记录全部插入为止。
//按学号排序,使用插入排序
inssort(recordlist
*
l)
{
int
j;
i=2;
=l->
length;
l->
r[0].key=l->
r[i].key;
j=i-1;
while(l->
r[0].key<
r[j].key)
r[j+1].key
r[j].key;
j=j-1;
r[j+1].key=l->
r[0].key;
m=1;
m<
m++)
r[m].key<
;
b.冒泡排序
bubblesort(recordlist
i,j,x;
change=TRUE;
for(i=1;
length
change;
++i)
change=FALSE;
for(j=1;
j<
length-i;
++j)
if(l->
r[j].key>
r[j+1].key)
x=l->
r[j].key=l->
r[j+1].key=x;
}
}
c.快速排序
qkpass(recordlist
l,int
left,int
right)
r[left].key;
low=left;
high=right;
while(low<
high)
high
r[high].key
=x)
high--;
if(low<
r[low].key
low++;
r[high].key<
x)
r[high].key=l->
r[low].key;
r[low].key=x;
return
low;
qksort(recordlist
*l,int
low,int
pos;
=high)
pos=qkpass(l,low,high);
qksort(l,low,pos-1);
qksort(l,pos+1,high);
d.简单选择排序
selectsort(recordlist
i,j,k,x,n;
=n-1;
k=i;
for(j=i+1;
=n;
++j)
r[j].key<
r[k].key)
k=j;
if(k!
=i)
r[i].key=l->
r[k].key;
r[k].key=x;
}
四、测试数据与实验结果
1.直接插入排序
2.冒泡排序
3.快速排序
4.简单选择排序
5.顺序查找
五、实验总结
通过本次实验我对查找排序的应用有了相对的了解。
通过自己数次的调试、修改也搞懂了许多以前比较模糊的知识点,比如这次的界面是复制过来的,其中很多语句经过同学的帮助及查找资料后可以理解。
但这次实验也有很多不尽人意的地方,程序与老师的要求可能会有些出入我将在以后的试验中会加强自己的编程能力,多学习同学优秀的地方.也会在以后的学习过程中要尽量考虑周全。
6、源代码
#include
iostream.h>
malloc.h>
#define
maxsize
12
listsize
10
keysize
MAX
100
radix
10
keytype;
//总分
key;
next;
}recordtype;
recordtype
r[listsize
}recordlist;
pvector[radix];
//直接插入排序
//冒泡排序
//简单选择排序
//快速排序
//顺序查找
if(m==1)
for(int
}
void
main()
a=1,k,r,e,q;
char
b;
recordlist
*L;
L=(recordlist*)malloc(sizeof(recordlist));
输入所创表的长度:
cin>
r;
L->
length=r;
输入表的元素:
i=1;
=L->
请输入第"
个元素:
while(a)
*********菜单**********"
1直接插入排序:
2冒泡排序:
3快速排序:
4简单选择排序:
5顺序查找:
6退出操作:
请输入你选择的操作序号:
switch(b)
case
'
1'
:
直接插入排序:
inssort(L);
break;
2'
冒泡排序:
bubblesort(L);
3'
快速排序:
qksort(L,1,10);
for(
q=1;
q<
q++)
r[q].key<
4'
简单选择排序:
selectsort(L);
5'
进行顺序查找:
输入要查找的元素:
k;
seqsearch(L,k);
6'
a=0;
退出!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验七 查找 实验