查找与排序实验报告

实验四:查找与排序

【实验目的】

1. 掌握顺序查找算法的实现。

2. 掌握折半查找算法的实现。

【实验内容】

1. 编写顺序查找程序,对以下数据查找37所在的位置。

5,13,19,21,37,56,64,75,80,88,92

2. 编写折半查找程序,对以下数据查找37所在的位置。

5,13,19,21,37,56,64,75,80,88,92

【实验步骤】

1.打开VC++。

2.建立工程:点File->New,选Project标签,在列表中选Win32 Console Application,再在右边的框里为工程起好名字,选好路径,点OK->finish。至此工程建立完毕。

3.创建源文件或头文件:点File->New,选File标签,在列表里选C++ Source File。给文件起好名字,选好路径,点OK。至此一个源文件就被添加到了你刚创建的工程之中。

4.写好代码

5.编译->链接->调试

#include "stdio.h"

#include "malloc.h"

#define OVERFLOW -1

#define OK 1

#define MAXNUM 100

typedef int Elemtype;

typedef int Status;

typedef struct

{

Elemtype *elem;

int length;

}SSTable;

Status InitList(SSTable &ST )

{

int i,n;

ST.elem = (Elemtype*) malloc (MAXNUM*sizeof (Elemtype)); if (!ST.elem) return(OVERFLOW);

printf("输入元素个数和各元素的值:");

scanf("%d\n",&n);

for(i=1;i<=n;i++)

{

scanf("%d",&ST.elem[i]);

}

ST.length = n;

return OK;

}

int Seq_Search(SSTable ST,Elemtype key)

{

int i;

ST.elem[0]=key;

for(i=ST.length;ST.elem[i]!=key;--i);

return i;

}

int BinarySearch(SSTable ST,Elemtype key)

{

int low,high,mid;

low=1;

high=ST.length;

while(low<=high)

{

mid=(low+high)/2;

if(ST.elem[mid]==key)

return mid; else if(key<ST.elem[mid]) high=mid-1;

else

low=mid+1;

}

return 0;

}

void main()

{

int key; SSTable ST; InitList(ST); printf("输入查找的元素的值:"); scanf("%d",&key);

Seq_Search(ST,key);

printf("查找的元素所在的位置:%d\n",Seq_Search(ST,key)); printf("输入查找的元素的值:");

scanf("%d",&key);

BinarySearch(ST,key);

printf("查找的元素所在的位置:%d\n",BinarySearch(ST,key)); }

【实验心得】

这是本学期的最后一节实验课,实验的内容是查找与排序。在老师的指导下,同学们相互探讨,很快就完成了任务。

虽然课程结束了,但是它教给了我很多东西。实验前,对书本知识的理解;试验中,独立思考的能力和思考的方式;实验后,及时的复习和总结等。这些实验也增强了我的沟通能力,动手能力,理论在现实中的应用能力。这些都是在书本上学不到的知识,我受益匪浅。

 

第二篇:排序与查找(综合实验报告)

本科学生实验报告

实验课程名称 数据结构(C语言版) 实验名称 排序与查找 开课学期 2009 至_ 2010 学年 _ 第二 学期

云南师范大学旅游与地理科学学院编印

一、实验准备

排序与查找综合实验报告

排序与查找综合实验报告

排序与查找综合实验报告

排序与查找综合实验报告

排序与查找综合实验报告

排序与查找综合实验报告

二、实验内容、步骤和结果

排序与查找综合实验报告

排序与查找综合实验报告

排序与查找综合实验报告

三、实验小结

排序与查找综合实验报告

相关推荐