软基第五次上机实验报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软基第五次上机实验报告

EX5_1

一、程序流程

设有序序列的数据元素为: (3,10,13,17,40,43,50, 70)

1) 编写顺序查找函数

2) 编写二分查找函数

3) 在主程序中输入关键字( 43 和 5),分别调用两种查找函数,输出结果。数据结构描述:二分查找

二、程序代码: #include #include #define N 20 void search_sequence(int *a,int x) {

int i;

for(i=0;a[i+1]!=0;i++)

if (a[i]==x) {printf("Location:%d\n",i);return;}

if (a[i+1]==0) printf("Can not find!\n");

}

void search_dichotomy(int *a,int x)

{

int i=-1,length,head,trail,p; while(a[++i]!=0);

length=i;

head=0;trail=length-1;

while(head

{

p=(head+trail)/2;

if (a[p]

else if (a[p]>x) trail=p-1;

else {printf("Location:%d\n",p);return;}

}

printf("Can not find!\n");

}

void main()

{

int a[]={3,10,13,17,40,43,50,70,0};

printf("顺序查找 43 和 5:\n"); search_sequence(&a,43);search_sequence(&a,5);

printf("二分查找 43 和 5:\n"); search_dichotomy(&a,43);search_dichotomy(&a,5);

}

三、典型测试数据1: 3,10, 13,17,40,43,50,70

四上机时遇到的问

1、文件头缺失解决办法:添加#include

五、实际运行结果:

顺序查找帕和E,

Location: 5

Can not find*

二分畫找4弓和E:

Location:5

Can not find*

Pi*ocess returned 14 <0xE> execut ion t ine : 0・ 012 證

Press any Iceto continue

六、个人体会:在此次实验中让我更深的认识到了顺序查找。

EX5_2

一、程序流程:

排序

1) 编写简单选择法函数

2) 编写直接插入法函数

3) 编写冒泡法排序函数

4) 在主程序中输入一组数据元素( 513,87, 512,61,908, 170, 897, 275, 653,462),分别调用三种排序函数,输出每趟排序结果。

数据结构描述:排序

二、程序代码:

#in clude

#in clude

#defi ne N 20

void seque nce_in sert(i nt *a)

{

int i=-1,j,le ngth,exc;

printf("插入排序法:\n");

while(a[++i]!=0);

len gth=i;

for (i=1;i

{

exc=a[i];

for (j=i-1;exc=0;j--)

{

a[j+1]=a[j];

a[j]=exc;

}

for (j=0;j

prin tf("%d ",a[j]);

printf("\n");

}

void sequence_select(int *a)

{

int i=-1,j,length,min,exc; printf("选择排序法 :\n"); while(a[++i]!=0); length=i;

for (i=0;i

{ min=a[i]; for (j=i+1;j

for (j=i+1;j

for (j=0;j

printf("\n");

}

}

void sequence_bubble(int *a)

{

int i=-1,j,length,exc; printf("冒泡排序法 :\n"); while(a[++i]!=0); length=i;

for (i=0;i

{

for (j=i+1;j

if (a[i]>a[j]) {exc=a[j];a[j]=a[i];a[i]=exc;} for (j=0;j

printf("%d ",a[j]); printf("\n");

}

}

void main()

{

int a[]={518,87,512,61,908,170,897,275,653,462,0}; int

b[]={518,87,512,61,908,170,897,275,653,462,0}; int

c[]={518,87,512,61,908,170,897,275,653,462,0}; sequence_insert(&a);

sequence_select(&b); sequence_bubble(&c);

相关文档
最新文档