binarySearch
Java
while
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class A { public static int binarySearch( int [] array, int aim) { int low = 0, high = array.length - 1, mid; while (low <= high) { mid = (low + high) / 2; if (aim < array[mid]) { high = mid - 1; } else if (aim > array[mid]) { low = mid + 1; } else { return mid; } } return -(low + 1); } public static void main(String[] args) { int [] array={1,3,5,8}; System. out .println(binarySearch(array,9)); } } |
recursion
public class A { public static int binarySearch(int[] array, int low, int high, int aim) { if (low > high) { return -(low + 1); } int mid = (low + high) / 2; if (aim < array[mid]) { return binarySearch(array, low, mid - 1, aim); } else if (aim > array[mid]) { return binarySearch(array, mid + 1, high, aim); } else { return mid; } } public static void main(String[] args) { int[] array = {1, 3, 5, 8}; System.out.println(binarySearch(array, 0, array.length - 1, 9)); } }
Go
while
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package main func main() { var array = [] int {1, 3, 5, 8} println(binarySearch(array, 9)) } func binarySearch(array [] int , aim int ) int { var ( low = 0 high = len(array) - 1 mid int ) for low <= high { mid = (low + high) / 2 if aim < array[mid] { high = mid - 1 } else if aim > array[mid] { low = mid + 1 } else { return mid } } return -(low + 1) } |
recursion
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package main func main() { var array = [] int {1, 3, 5, 8} println(binarySearch(array, 0, len(array)-1, -1)) } func binarySearch(array [] int , low, high, aim int ) int { if low > high { return -(low + 1) } mid := (low + high) / 2 if aim < array[mid] { return binarySearch(array, low, mid-1, aim) } else if aim > array[mid] { return binarySearch(array, mid+1, high, aim) } else { return mid } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律