public class c06_01_02二分法 { /** * 查找数,找到返回坐标,否则返回-1(二分法) * @param num 所要查找的数 * @param n 所查找的范围(数组) * @return 数的下标或者是-1 */ public static int find(int num, int[] n){ int start = 0; int end = n.length-1; while (start <= end){ int mid = (end+start)/2; if(num == n[mid]){ return mid; } else if(num > n[mid]){ start = mid+1; } else { end = mid-1; } } return -1; } public static void main(String[] args) { int[] arr = {1,2,5,9,11,23,25,56,78,102}; System.out.printf("请输入您要找到的数:"); Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int i = find(n,arr); if(-1 == i){ System.out.printf("%d没有找到",n); }else { System.out.printf("%d已找到,数组下标为%d",n ,i); } } }
二分法查找
最新推荐文章于 2024-08-23 15:54:50 发布