软基第五次上机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软基第五次上机实验报告
EX5_1
一、程序流程
设有序序列的数据元素为: (3,10,13,17,40,43,50, 70)
1) 编写顺序查找函数
2) 编写二分查找函数
3) 在主程序中输入关键字( 43 和 5),分别调用两种查找函数,输出结果。数据结构描述:二分查找
二、程序代码: #include
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);