二分查找
2023-11-16 15:34 钟铧若岩 阅读(34) 评论(0) 编辑 收藏 举报1、二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找
2、二分查找法的运行时间为对数时间O(㏒₂n) ,即查找到需要的目标位置最多只需要㏒₂n步,假设从[0,99]的队列(100个数,即n=100)中寻到目标数30,则需要查找步数为㏒₂100 , 即最多需要查找7次( 2^6 < 100 < 2^7)
————————————————
版权声明:本文为CSDN博主「鲨瓜2号」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aetawt/article/details/122239186
1 /* 2 二分查找---不使用递归 3 */ 4 public static int binarySearch(int[] arr, int target) { 5 int left = 0; 6 int right = arr.length - 1; 7 while (left <= right) { 8 int mid = (left + right) / 2; 9 if (arr[mid] < target) { 10 //如果中间值小于查找的值target,往右查找 11 left = mid + 1; 12 } else if (arr[mid] > target) { 13 //如果中间值大于target,往左边查找 14 right = mid - 1; 15 } else { 16 return mid; 17 } 18 } 19 return -1; 20 }