问答题 写出二分查找的递归程序。【北京交通大学2006年】初始调用时,low为1,high为ST.1ength。
【正确答案】正确答案:算法的基本设计思想:根据查找的起始位置和终止位置,将查找序列一分为二,判断所查找的关键字在哪一部分,然后用新的序列起始位置和终止位置递归求解。算法的代码: typedef struct { //查找表的数据结构 E1emType*elem; //存储空间基址,建表时按实际长度分配,0号留空 int length; //表的长度 }SSTable; int Search(SSTable ST,ElemType Key,int low,int high){ //在有序表中递归折半查找其关键字为Key的元素,返回其在表中序号 int mid=(10w+high)/2; if(10w>high) return 0; if(Key>ST.elem[mid]) Search(ST,Key,mid+l,high);//向后半部分查找 else if(Key
【答案解析】