1 / 5
文档名称:

实验十二 实现顺序和二分查找算法.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验十二 实现顺序和二分查找算法.doc

上传人:zgs35866 2016/3/8 文件大小:0 KB

下载得到文件列表

实验十二 实现顺序和二分查找算法.doc

文档介绍

文档介绍:实验十二实现顺序和二分查找算法姓名:张就班级: 09 计算机一班学号: 2009111111 一、实验目的掌握顺序和二分查找算法的基本思想及其实现方法。二、实验内容对给定的任意数组( 设其长度为 n), 分别用顺序和二分查找方法在此数组中查找与给定值 k 相等的元素。三、算法思想与算法描述 1 、顺序查找,在顺序表 R[0..n-1] 中查找关键字为 k 的记录,成功时返回找到的记录位置,失败时返回-1 ,具体的算法如下所示: int SeqSearch(SeqList R, int n,KeyType k) { int i=0; while (i<n&&R[i].key!=k) { printf( "%d" ,R[i].key); i++; } if (i>=n) return -1; else { printf( "%d" ,R[i].key); return i; }}2、二分查找, 在有序表 R[0..n-1] 中进行二分查找, 成功时返回记录的位置,失败时返回-1 ,具体的算法如下: int BinSearch(SeqList R, int n,KeyType k) { int low=0,high=n-1,mid,count=0; while (low<=high) { mid=(low+high)/2; printf( "第%d次查找:在[ %d ,%d] 中找到元素 R[%d]:%d\n " ,++count,low,high,mid,R[mid].key); if (R[mid].key==k) return mid; if (R[mid].key>k) high=mid-1; else low=mid+1; } return -1; } 四、实验步骤与算法实现#include <> #define MAXL 100 typedef int KeyType; typedef char InforType[10]; typedef struct { KeyType key; InforType data; }NodeType; typedef NodeType SeqList[MAXL]; int SeqSearch(SeqList R, int n,KeyType k) { int i=0; while (i<n&&R[i].key!=k) { printf( "%d" ,R[i].key); i++; } if (i>=n) return -1; else { printf( "%d" ,R[i].key); return i; }} int BinSearch(SeqList R, int n,KeyType k) { int low=0,high=n-1,mid,count=0; while (low<=high) { mid=(low+high)/2; printf( "第%d次查找:在[ %d ,%d] 中找到元素 R[%d]:%d\n " ,++count,low,high,mid,R[mid].key); if (R[mid].key==k) return mid; if (R[mid].key>k) high=mid-1; else low=mid+1; } return -1; } int BinSe