闲来无趣,云品台也开发的差不多了,回顾回顾小小算法,防止老年痴呆 /** * 又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较, * 如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小, * 则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。 */ public class BinarySerach { @Test public void binarySearchTest() { Integer[] arr = {1, 2, 3, 5, 6, 7, 8, 9}; int dest = 3; int i = binarySearchTest(arr, 0, arr.length - 1, dest); System.out.println(i); } private int binarySearchTest(Integer[] arr, int left, int right, int dest) { if (left <= right) { int middle = (left + right) >> 1; if (arr[middle] == dest) { return middle; } else if (arr[middle] < dest) { left = middle; return binarySearchTest(arr, left, right, dest); } else { right = middle; return binarySearchTest(arr, left, right, dest); } } return -1; } }
二分查找
最新推荐文章于 2023-05-28 13:59:52 发布