package com.hncu.arrsearch;
public class MyBinarySearchDemo {
//二分查找
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int number = 10;
int Index = binarySearchForIndex(arr, number);
System.out.println(Index);
}
private static int binarySearchForIndex(int[] arr, int number) {
// 方法一:
// int min = 0;
// int max = arr.length - 1;
// int mid = (min + max) / 2;
// while (arr != null && arr[mid] != number) {
// mid = (min + max) / 2;
// if (max < min) {
// return -1;
// }
// if (arr[mid] < number) {
// min = mid + 1;
// }
// if (arr[mid] > number) {
// max = mid - 1;
// }
// }
// return mid;
// 方法二:
int min = 0;
int max = arr.length - 1;
while (min <= max) {
int mid = (min + max) / 2;
if (arr[mid] < number) {
//数在mid右边
min = mid + 1;
} else if (arr[mid] > number) {
//数在mid左边
max = mid - 1;
} else {
//数在mid位置
return mid;
}
}
return -1;//找不到返回-1
}
}
数组二分查找法的代码实现
最新推荐文章于 2023-05-28 13:59:52 发布