
| public class BinarySearch { |
| |
| public static void main(String[] args) { |
| |
| int arr[] = { 1, 8, 10, 89, 1000, 1234 }; |
| int resIndex = binarySearch(arr, 0, arr.length - 1, 1000); |
| System.out.println("resIndex=" + resIndex); |
| |
| |
| int arr[] = { 1, 8, 10, 89, 1000, 1000, 1234 }; |
| List<Integer> resIndexList = binarySearch2(arr, 0, arr.length - 1, 1000); |
| System.out.println("resIndexList=" + resIndexList); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public static int binarySearch(int[] arr, int left, int right, int findVal) { |
| |
| if (left > right) { |
| return -1; |
| } |
| int mid = (left + right) / 2; |
| int midVal = arr[mid]; |
| |
| if (findVal > midVal) { |
| return binarySearch(arr, mid + 1, right, findVal); |
| } else if (findVal < midVal) { |
| return binarySearch(arr, left, mid - 1, findVal); |
| } else { |
| |
| return mid; |
| } |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public static List<Integer> binarySearch2(int[] arr, int left, int right, int findVal) { |
| System.out.println("hello~"); |
| |
| if (left > right) { |
| return new ArrayList<Integer>(); |
| } |
| int mid = (left + right) / 2; |
| int midVal = arr[mid]; |
| |
| if (findVal > midVal) { |
| return binarySearch2(arr, mid + 1, right, findVal); |
| } else if (findVal < midVal) { |
| return binarySearch2(arr, left, mid - 1, findVal); |
| } else { |
| |
| |
| |
| |
| |
| |
| List<Integer> resIndexlist = new ArrayList<Integer>(); |
| |
| int temp = mid - 1; |
| while(true) { |
| if (temp < 0 || arr[temp] != findVal) { |
| break; |
| } |
| |
| resIndexlist.add(temp); |
| temp -= 1; |
| } |
| resIndexlist.add(mid); |
| |
| |
| temp = mid + 1; |
| while(true) { |
| if (temp > arr.length - 1 || arr[temp] != findVal) { |
| break; |
| } |
| |
| resIndexlist.add(temp); |
| temp += 1; |
| } |
| return resIndexlist; |
| } |
| } |
| |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了