实验类型:验证性 实验要求:必修 实验学时: 2学时 一、实验目的:
参照各种查找算法程序样例,验证给出的查找常见算法。 二、实验要求:
1、掌握各种查找算法的特点,测试并验证查找的常见算法。
2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。 三、实验内容:
1. 建立有序表,采用折半查找实现某一已知的关键字的查找。
2.利用折半查找算法在一个有序表中插入一个元素,并保持表的有序性。
源程序如下:
#include private: int mm; int nn; T *v; public: sL_List(){mm=0;nn=0;return;} sL_List(int); int search_sL_List(T); int insert_sL_List(int,T); void prt_sL_List(); }; template sL_List mm=m; v=new T[mm]; nn=0; return; } template int sL_List int i,j,k; i=1;j=nn; while(i<=j) { k=(i+j)/2; if(v[k-1]==x) return(k-1); if(v[k-1]>x) j=k-1; else i=k+1; } return(-1); } template int sL_List if(nn==mm) { cout<<\"溢出!\"< while(v[p]>x) { v[p+1]=v[p]; p=p-1; } v[p+1]=x; nn=nn+1; return(1); } template void sL_List int i; for(i=0;i int main() { int k,t,q,result; int a[20]={10,20,30,40,50,60,70,80}; sL_List cout<<\"插入后有序表变为:\"< 心得体会: 1. 通过这次试验,我知道了一些查找的基本方法,并且了解了折半查找的典型方法及技巧。 2. 并且我掌握了利用折半法插入一个元素的方法。 3. 常见问题在于在插入位置时,易混淆位置与数值的关系,以及c++中的一些基本定义方法易忘记。 因篇幅问题不能全部显示,请点此查看更多更全内容