public static int search(int[] arr, int target) {
if (arr == null || arr.length <= 0) {
return -1;
}
int low = 0;
int high = arr.length - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < arr[high]) {
if (arr[mid] < target && target <= arr[high]) {
low = mid + 1;
} else {
high = mid - 1;
}
} else {
if (arr[low] <= target && target < arr[mid]) {
high = mid - 1;
} else {
low = mid + 1;
}
}
}
return -1;
}
获取有序数组中数据所在数组位置索引
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 0. 链接 1. 需求 Suppose an array sorted in ascending order is...
- Python小白 Leetcode刷题历程 No.31-No.35 下一个排列、最长有效括号、搜索旋转...
- 57 有序数组中和为s的两个数 题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好...