|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
In the binary search program on page 112, why did we write mid = beg + (end - beg) / 2; instead of mid = (beg + end) /2;?
- // text must be sorted
- // beg and end will denote the range we're searching
- auto beg = text.begin(), end = text.end();
- auto mid = text.begin() + (end - beg)/2; // original midpoint
- // while there are still elements to look at and we haven't yet found sought
- while (mid != end && *mid != sought) {
- if (sought < *mid) // is the element we want in the first half?
- end = mid; // if so, adjust the range to ignore the second
- half
- else // the element we want is in the second half
- beg = mid + 1; // start looking with the element just after mid
- mid = beg + (end - beg)/2; // new midpoint
- }
复制代码 |
|