二分查找

package com.jhl;


import java.util.Arrays;


public class BinarySearch {


public static void main(String[] args) {

int[] a = { 1, 1, 5, 0, 7, 56, 82, 1, 8 };

Arrays.sort(a);

System.out.println(Arrays.toString(a));

int result = binSearch(a, a.length, 1);//

System.out.println("result1=" + result);

int result2 = Arrays.binarySearch(a, 1);

System.out.println("result2=" + result2);

}


/**

* @param array

* @param len

* @param key

* @return 这个数唯一则返回下标位置,如果不唯一则返回最右边的下标

*/

public static int binSearch(int[] array, int len, int key) {


int low = 0;

int high = len - 1;


while (low <= high) {

int mid = (low + high) >> 1;

if (key == array[mid]) {

return mid;

}


if (key < array[mid]) {

high = mid - 1;

}

if (key > array[mid]) {

low = mid + 1;

}

}


return -1;

}

}

二分查找(递归与非递归) http://blog.csdn.net/q3498233/article/details/4419285


你可能感兴趣的:(二分查找(递归与非递归))