电子科技大学软件技术基础实验报告5
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学通信与信息工程学院标准实验报告
(实验)课程名称软件技术基础实验
电子科技大学教务处制表
电子科技大学
实验报告
一、实验室名称:校公共机房
二、实验项目名称:查找与排序
三、实验学时:4学时
四、实验原理:
使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。通过上机练习掌握顺序查找、二分查找函数、简单选择法、直接插入法、冒泡法排序、快速排序等方法、过程和实际应用。
五、实验目的:
1.熟练掌握顺序查找、二分查找函数、简单选择法、直接插入法、冒泡法
排序、快速排序等算法方法并实现。
2.掌握课程平台使用方法。
六、实验内容:
ex5_1:查找
设有序序列的数据元素为:
(3,10,13,17,40,43,50,70)
1)编写顺序查找函数
2)编写二分查找函数
3)在主程序中输入关键字(43和5),分别调用两种查找函数,输出结果。//第一题
#include
#define maxnum 20
typedef struct
{
int data[maxnum];
int length;
}list_type;
void create(list_type *l)
{
l->length=8;
l->data[0]=3;
l->data[1]=10;
l->data[2]=13;
l->data[3]=17;
l->data[4]=40;
l->data[5]=43;
l->data[6]=50;
l->data[7]=70;
}
void shunxucz(list_type *l,int a1,int a2)
{
int i,flag=0;
printf("-----------------------------------------------\n");
printf("顺序查找法:\n");
for(i=0;i
{
if(a1==l->data[i])
{printf("%d是第%d个元素\n",a1,(i+1));flag=flag+1;} }
if(flag==0) printf("表中没有大小为%d的元素\n",a1);
flag=0;
for(i=0;i
{
if(a2==l->data[i])
{printf("%d是第%d个元素\n",a2,(i+1));flag=flag+1;} }
if(flag==0) printf("表中没有大小为%d的元素\n",a2);
}
void erfencz(list_type *l,int a1,int a2)
{
printf("-----------------------------------------------\n");
printf("二分查找法:\n");
int low,h,m,flag=0,i;
low=0;
h=l->length-1;
for(i=0;i
{
m=(low+h)/2; //如果有小数就向小的数字取值9/2=4
if(l->data[m]==a1)
{printf("%d是第%d个元素\n",a1,(m+1));flag=1;break;}
else if(l->data[m]<22) low=m+1;
else if(l->data[m]>22) h=m-1;
}
if(flag!=1)
printf("表中没有大小为%d的元素\n",a1);
flag=0;
low=0;
h=l->length-1;
for(i=0;i
{
m=(low+h)/2; //如果有小数就向小的数字取值9/2=4
if(l->data[m]==a2)
{printf("%d是第%d个元素\n",a2,(m+1));flag=1;break;}
else if(l->data[m]<22) low=m+1;
else if(l->data[m]>22) h=m-1;
}
if(flag!=1)
printf("表中没有大小为%d的元素\n",a2);
}
int main()
{
int flag1=43,flag2=5;
list_type list,list1,list2;
create(&list);create(&list1);create(&list2);
shunxucz(&list1,flag1,flag2);
erfencz(&list1,flag1,flag2);
printf("-----------------------------------------------\n");
}
ex5_2:排序
1)编写简单选择法函数
2)编写直接插入法函数
3)编写冒泡法排序函数
4)编写快速排序函数
5)在主程序中输入一组数据元素(513,87,512,61,908,170,897,275,653,462),分别调用4种排序函数,输出每趟排序结果。