电子科技大学软件技术基础实验报告5

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;ilength;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;ilength;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;ilength;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;ilength;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种排序函数,输出每趟排序结果。

相关文档
最新文档