包含重复元素的二分查找
Posted nichoo的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包含重复元素的二分查找相关的知识,希望对你有一定的参考价值。
一般的二分查找只要求找到目标元素的位置,但是不保证该位置是否为该元素出现的第一个位置或者最后一个位置,现在想输出该元素第一次出现的位置:
public class BinarySearchFirstOne { public static void main(String[] args) { int[] arr = {1,2,3,3,3,4,5,5,6,7,7,7,8,9,9}; int target = 7; System.out.println(search(arr, target)); } public static int search(int[] arr, int target) { int lo = 0; int hi = arr.length - 1; int mid; while(lo < hi) { mid = (lo + hi) >> 1; if(arr[mid] < target) { lo = mid +1; } else hi = mid; } if(arr[lo] == target) { return lo; } else return -1; } }
以上是关于包含重复元素的二分查找的主要内容,如果未能解决你的问题,请参考以下文章