折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中哪些元素比较大小,查找结果失败()
int BinSearch(vector<int>R, int key) { int low = 0, high = R.size()-1, mid; while (low <= high) { mid = low + (high-low)/2; //或是mid = low + ((high - low)>>1) //采用mid = (low + high)/2有可能导致溢出 printf("查找的元素为%d,索引为%d\n",R[mid],mid); if (R[mid] == key) { return mid + 1; } if (R[mid] > key) { high = mid - 1; } else { low = mid + 1; } } return 0; }