查找实验报告

时间:2024.4.20

实验报告

 姓                                   课程名称:   

院(系                        专业/年级:


第二篇:二分法查找实验报告


数 据 结 构

二分法查找实验

班级:计算机应用技术10-1班 学号:xx  姓名:xx  

一、实验目的及要求:

掌握有关二分法函数对数据的统计的基本操作和存储结构,并编写相应的基本操作算法。

 二、实验内容:

1、完成插入排序函数的程序

2、用循环完成二分法查找函数

3、用递归完成二分法查找函数

4、在二分法函数中统计出查找次数与被查找关键字在有序表中的位置

5、最好能与顺序查找对比查找效率

 三、实验准备:

1) 计算机设备;

2) 程序调试环境的准备,如VC6、C++或WIN-TC环境;

3) 实验内容的算法分析与代码设计准备。

四、函数实现

1、二分法函数

#include

#define MAXSIZE 10

int BinSearch(int s[],int low,int high,int key)

      { int mid,count=0;

        while(low<=high)

          { mid=(low+high)/2;

            count++; 

             if(key==s[mid])

               { printf("\n\t (1)count=%d\n",count);

                   return (mid+1);

                }

             else

                   if(key>s[mid]) low=mid+1;

                   else    high=mid-1;

           }               

        return -1;

       }

int BinSearch2(int s[],int low,int high,int key)

      { int mid;

        static int count=0;

        while(low<=high)

          { mid=(low+high)/2;

            count++; 

             if(key==s[mid])

               { printf("\n\t (2)count=%d\n",count);

                 return (mid+1);

                }

             else

                  if(key>s[mid]) return BinSearch2(s,mid+1,high,key);

                   else          return BinSearch2(s,low,mid-1,key);

           }               

        return -1;

       } 

int main()

   { int m[MAXSIZE]={4,7,-1,0,8,12,20,3,2,15},i,length,key,location;

  for(length=1;length<10;length++)

     { key=m[length];

       i=length-1; 

       while(i>=0)

        { if(key

           else   break;

         }

      m[i+1]=key;

     }   

   printf("\n\nSorted:");

   for(i=0;i<10;i++)

   printf("%3d ",m[i]);

     printf("\n\n"); 

   location=BinSearch(m,0,9,7);

   printf("\n\t location=%d\n",location);

   location=BinSearch2(m,0,9,12);

   printf("\n\t location=%d\n",location);          

   return 0;

   }

2、二分法函数统计数据

#include

#define MAXSIZE 10

int BinSearch(int s[],int low,int high,int key) 

      { int mid,count=0;

        while(low<=high)

          { mid=(low+high)/2;

            count++; 

            if(key==s[mid])

               { printf("\n\t (1)count=%d\n",count);

                   return (mid+1);

                }

            else

                   if(key>s[mid]) low=mid+1;

                   else    high=mid-1;

           }

         printf("\n\t Search fail!\n");

         return -1;

       }

int BinSearch2(int s[],int low,int high,int key)

      { int mid;

        static int count=0;

        while(low<=high)

          { mid=(low+high)/2;

            count++; 

            if(key==s[mid])

               { printf("\n\t (2)count=%d\n",count);

                 return (mid+1);

                }

            else

                  if(key>s[mid]) return BinSearch2(s,mid+1,high,key);

                   else          return BinSearch2(s,low,mid-1,key);

           }

        printf("\n\t Search fail!\n");

        return -1;

       } 

 void  InserSort(int m[],int length)

    { int key,i,k;

      for(k=1;k

        {  key=m[k];

           i=k-1;        

          while(i>=0)

             { if(key

              else   break;

             }

         m[i+1]=key;

        }   

    }

int main()

 { int m[MAXSIZE]={4,7,-1,0,8,12,20,3,2,15},location,len=10,x,i;

   InserSort(m,len);

   printf("\n\nSorted:");

   for(i=0;i<10;i++)

       printf("%3d ",m[i]);

   printf("\n\n Input the search data:");

   scanf("%d",&x);  

   location=BinSearch(m,0,len-1,x);

   printf("\n\t location=%d\n",location);

   location=BinSearch2(m,0,len-1,x);

   printf("\n\t location=%d\n",location);          

   return 0;

   }

五、测试(在主函数中调用函数测试功能)

#include

#include

#define MAXSIZE  80

int main(void)

 {  char p1[]="",p2[]="";

 printf("\n\t (1)p1->length=%d p2->length=%d\n",StrLen(p1),StrLen(p2));

      Strcat(p1,p2);

    printf("\n\t (2)p1=%s\n",p1);     

    printf("\n\t (3)the result is %d\n",Strcmp(p1,p2)  );

      ReverseStr(p1);

    printf("\n\t (4)p1=%s\n",p1);

    getch();

    return 0;

 }

实验截图:

六、心得体会

通过这次的实验,我又学到了有关二分法函数的调用的很多的知识,从这个函数里可以让我们很方便的统计数字。对这部分的知识我们有待加强,更好地去熟练这部分知识的应用。我们学习数据结构的时候还有很多的算法都还没有掌握,这次的实验给我们了很大的启示。所以去要在今后的学习中努力学号有关知识的相关内容,把我的基础打牢固。

更多相关推荐:
查找排序实验报告

实验十查找排序计算机学院12级2班1211020xx李龙实验目的1掌握折半查找算法的思想2实现折半查找的算法3掌握常见的排序算法插入排序交换排序选择排序等的思想特点及其适用条件4能够分析各种算法的效率5熟练的掌...

排序查找实验报告

实验五查找与排序实验课程名数据结构与算法专业班级12级软件工程1班学号20xx40450149姓名刘浩实验时间61462134节实验地点K4201指导教师邓丹君

实验报告_排序与查找

电子科技大学信息与软件工程学院实验报告电子科技大学实验报告课程名称学生姓名学号点名序号指导教师实验地点实验时间20xx20xx2学期信息与软件工程学院第1页电子科技大学信息与软件工程学院实验报告实验报告二学生姓...

数据结构查找实验报告

实验题91设计一个程序exp91cpp输出在顺序表36210185749中采用顺序方法找关键字5的过程程序如下文件名exp91cppincludeltstdiohgtdefineMAXL100typedefin...

查找与排序实验报告

实验四查找与排序实验目的1掌握顺序查找算法的实现2掌握折半查找算法的实现实验内容1编写顺序查找程序对以下数据查找37所在的位置5131921375664758088922编写折半查找程序对以下数据查找37所在的...

实验七 查找技术的编程实现 实验报告

HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGY数据结构实验七查找技术的编程实现实验目的查找技术的编程实现要求查找技术的编程实现2学时综合型掌握查找技术的编程实现可以实现一种也可以实现...

数据结构查找实验报告

实验报告课程名称实验项目数据结构查找姓名xx专业班级学号网络工程网络132130402xxxx计算机科学与技术学院实验教学中心20xx年12月10日哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告实验项目...

实验16:哈希查找实验报告

深圳大学实验报告课程名称学院计算机与软件学院班级实验时间实验报告提交时间教务处制一实验目的1掌握哈希查找算法的基本思想2掌握哈希查找表的构造方法3掌握链表法解决冲突的方法4掌握哈希查找的时间性能二实验要求1熟悉...

实验十 查找技术验证实验报告

特殊线性表班级计算机111学号姓名成绩实验十查找技术验证实验一实验目的1掌握折半查找算法的基本思想2掌握折半查找算法的实现方法3掌握折半查找算法的时间性能4掌握二叉排序树定义和特性5掌握二叉排序树的建立方法6实...

静态查找表实验报告

1题目采用长整型整型字符型为元素类型和顺序存储为存储结构实现抽象数据类型静态查找表软件环境为VisualC20xxExpress2抽象数据类型定义以及各基本操作的简要描述ADTStaticSearchTable...

数据结构之顺序查找实验报告--郭治民

深圳大学实验报告课程名称学院计算机与软件学院班级实验时间实验报告提交时间教务部制注1报告内的项目或内容设置可根据实际情况加以调整和补充2教师批改学生实验报告时间应在学生提交实验报告时间后10日内

数据库数据查询实验报告

数据库应用设计实验报告实验名称实验3数据查询实验类型验证型实验实验环境指导教师专业班级计科0802班姓名学号联系电话电子邮件实验地点实验日期20xx年4月13日实验报告日期20xx年4月17日成绩一实验目的掌握...

查找实验报告(42篇)