折半查找
//****************************************** //折半查找---传进来的表是经过排序后的有序表 // //******************************************* void Search_Bin ( SSTable ST, string key ) { int low , mid,index, high ; // 置区间初值 low=1; index=0; high=ST.length; while (low<=high) { mid = (low+high)/2; if (key ==ST.elem[mid].key ) { cout<<endl<<"折半查找该关键字的位置是第 "<<mid<<" 位\n"; // 找到待查元素 cout<<endl<<endl; return; } else if (key < ST.elem[mid].key ) high = mid - 1; // 继续在前半区间进行查找 else low = mid + 1; // 继续在后半区间进行查找 } cout<<endl<<"抱歉,折半查找没找到该关键字。\n"; cout<<endl<<endl; }
最后更新:2017-04-02 18:44:44