正在加载图片...
lowthi eh (1)计算中间记录的序号m2」,取整; (2)若k=rmd]key,成功,否则 若k<rmid]key,则hgh-mid-1,重复(1) 若k>rmid]key,则ow=mid+1,重复(1) 直到成功或不成功(此时 low>high)。 具体算法如下: Void binsrch(struct node rl I, 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=rmid].key) find=I 已查到* else if(krImid. key low=mid+1;/在后半区间查找 else highmid-1 在前半区间查找 if(find) return(mid) 查找成功,返回找到元素的位置* else return(0) 查找不成功,返回0标记*(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 高等教育资讯网 版权所有