二分查找的两种实现方式

xiaoxiao2021-02-28  155

第一种是递归查找

第二种是非递归查找

public class testMain { public static void main(String args[]){ int array[] = new int[]{1, 2, 2, 3, 4 ,5, 6 ,7 ,8}; int res = binarySearch(array, 0, 8, 4); int res1 = binarySearch1(array, 0, 8, 4); System.out.println("res = "+res); System.out.println("res = "+res1); } //使用递归的方式 public static int binarySearch(int array[], int left, int right, int target){ if(left < right){ int mid = (left + right)/2; if(array[mid] == target){ return mid; } if(target < array[mid]){ return binarySearch(array, left, mid-1, target); } if(target > array[mid]){ return binarySearch(array, mid+1, right, target); } } return -1; } //使用普通的方式 public static int binarySearch1(int array[], int left, int right, int target){ while(left <= right){ int mid = (left + right)/2; if(array[mid] == target){ return mid; } if(target < array[mid]){ right = mid-1; } if(target > array[mid]){ left = mid+1; } } return -1; } }

转载请注明原文地址: https://www.6miu.com/read-32164.html

最新回复(0)