正在加载图片...
lowthi gh (1)计算中间记录的序号md[2 ,取整; (2)若k=r[md]key,成功,否则 若k<rmid]key,则high=mid-1,重复(1) 若k>rmid]key,则ow=mid+1,重复(1) 直到成功或不成功(此时 w>high)。 具体算法如下: Void binsrch(struct node r[ l, int n, int k) i int mid, low, high, find low-l: high-n, find=0 /置区间初值* while((low<=high)&&(find)) i mid=(low+high)/2 /求中点* if(k==r[]. key) find=1 己查到* else if(krImid] key low=mid+1;/*在后半区间查找* else high=mid-1 /*在前半区间查找* if(find) return(mid) 查找成功,返回找到元素的位置* else return(O) 查找 下一顶返回本章首页 下一页 上一页 (2)若k=r[mid].key,成功,否则: 若 k<r[mid].key, 则high=mid―1,重复(1); 若k>r[mid].key, 则low=mid+1,重复(1); 直到成功或不成功(此时low>high)。 具体算法如下: Void binsrch(struct node r[ ],int n,int k) { int mid,low,high,find; low=1; high=n;find=0; /*置区间初值*/ while ((low<=high) && (!find)) { mid=(low+high)/2; /*求中点*/ if (k= = r[mid].key) find=1; /*已查到*/ else if(k>r[mid].key ) low=mid+1; /*在后半区间查找*/ else high=mid-1; /*在前半区间查找*/ } if (find) return (mid); /*查找成功,返回找到元素的位置*/ else return (0); /*查找不成功,返回0标记*/ }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有