二分查找

[left, right] 方式

  • [left, mid -1]
  • [mid + 1, right]
		int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
//int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2
if (nums[mid] > target) {
right = mid - 1;
} else if (nums[mid] < target) {
left = mid + 1;
} else return mid;
}

//int middle = left + ((right - left) / 2);

// 防止溢出 等同于(left + right)/2

关于这一步的防止溢出,意义不大, Java中int的取值范围是2的32次方,最大值是2的31次方,最小值是负值的2的31次方-1

当数字这么大的时候,采取这样的查找方式是非常不合理的。

相关题目推荐

最新文章

  1. [NOIP2011] 提高组 洛谷P1311 选择客栈
  2. 【随笔】android开发的学习路线
  3. (medium)LeetCode .Implement Trie (Prefix Tree)
  4. c#高效比对大量图片
  5. SOCKET 地址
  6. hdu 5025 Saving Tang Monk 状态压缩dp+广搜
  7. mac缺少预编译.a问题
  8. POJ 2182 Lost Cows(牛排序,线段树)
  9. python类型转换、数值操作(收藏)
  10. 测试驱动开发实践2————从testList开始
  11. qml layout
  12. 数据规范化——sklearn.preprocessing
  13. 基于MGR+Atlas的读写分离尝试,以及MGR+Keepalived+Atlas自动故障转移+读写分离设想
  14. 去掉AMD锐龙和Intel Kaby Lake的不支持的硬件的提示
  15. Ajax和Json实现自动补全
  16. Flink--将表转换为DataStream或DataSet
  17. 5.1Python函数(一)
  18. 阅读程序 回答问题——FindTheNumber
  19. log4j的日志级别(ssm中log4j的配置)
  20. PAT B1017 A除以B (20 分)

热门文章

  1. Flask Web开发读书笔记
  2. python关于openpyxl的二次开发
  3. Docker重要容器命令
  4. Java Study two
  5. 如何看待malloc产生内存碎片
  6. buu 相册 wp
  7. 创建一个简单的Eureka注册中心
  8. 去掉一个Vector集合中重复的元素 ?
  9. Spring 框架的事务管理有哪些优点?
  10. 机器学习之近邻算法模型(KNN)